///
Универсальные коллекции значений в языке 1С и их применение

Универсальные коллекции значений в языке 1С и их применение

30.11.2022

Эта статья адресована тем, кто начинает программировать в среде 1С: Предприятие 8.3.

Усвоив практические задания и теорию сертифицированных курсов по программированию 1С перед начинающим разработчиком-программистом возникают проблемы связанные с пониманием сложных механизмов типовых конфигураций , в которых работает будущий работодатель. Одной из таких часто используемых типовых конфигураций является 1С: Бухгалтерия предприятия 3.0.

При написании программного кода программист часто встречается с необходимостью получать запросами данные на сервере, хранить их на протяжении сеанса и использовать в алгоритмах это множество данных, используя лишь один символ или одно имя как массив или как другой тип универсальной коллекции значений.

В приведенном ниже примере описывается формирование массива, возвращаемого функцией СписокДокументовПриемНаРаботу(), написанной в общем модуле ЗарплатаКадрыОбновлениеСПредыдущейРедакции типовой конфигурации Бухгалтерия предприятия 3.0(3.0.35.27).`

Что такое массив?

Массив представляет собой пронумерованную коллекцию значений произвольного типа. К элементу массива можно обращаться по его индексу. В качестве элементов массива могут выступать, в частности, другие массивы. Это позволяет создавать многомерные массивы. Безразмерным можно назвать массив количество элементов которого неограниченно.

Пример использования безразмерного массива.

В общем модуле ЗарплатаКадрыОбновлениеСПредыдущейРедакции есть функция (в конфигурации Бухгалтерия предприятия редакция 3.0 (3.0.35.27)

Рисунок 1

В этой функции реализован запрос к серверу где в прикладном объекте Документ.УдалитьПриемНаРаботуВОрганизацию есть данные, представляющие множество значений. Это ссылки на документы. Чтобы сохранить это множество для дальнейшего использования разработчики создали безразмерный массив СписокДокументов, который заполняется в цикле. Данная функция возвращает Ссылки на документы, которые хранятся в массиве СписокДокументов.

Чтобы посмотреть, как работает функция и какой результат она возвращает можно воспользоваться отладчиком. Для этого необходимо обратиться к событию, при котором отрабатывает эта функция. Чтобы упростить задачу создадим внешнюю обработку, с помощью которой проверим работоспособность функции.

В основной конфигурации в меню Файл-Новый-Внешняя обработка создадим обработку ПроверкаРаботоспособностиФункции

Рисунок 2
Рисунок 3

И реквизит Комментарий –тип:Строка

Рисунок 4

Затем создадим форму обработки с помощью конструктора формы, на форме создадим реквизит формы «ЭлементыМассива» тип-СписокЗначений

Рисунок 5. Универсальные коллекции значений в языке 1С и их применение

Создадим на форме команду «Проверка», для которой в модуле формы создадим процедуру-обработчик.

Здесь есть тонкости, заключающиеся в том, где компилятор выполнит процедуру: &НаКлиенте или &НаСервере.

Функция СписокДокументовПриемНаРаботу() не экспортная и чтобы получить возвращаемый ею массив ее надо сделать экспортной.

Тогда можно &НаКлиенте получить возвращаемый ею массив.

В противном случае придется копировать код функции (представлен выше) в процедуру &НаСервере.

В моем примере Функция СписокДокументовПриемНаРаботу() Экспорт преобразована в экспортную.

Напишем код процедура-обработчика
Рисунок 6

Этот простой способ позволит протестировать и увидеть результат работы функции, выполнив обучаемыми разработчиками -программистами самостоятельную работу и приобрести собственный практический опыт при редактировании функциональности процедур и функций 1С: Бухгалтерия 3.0.

Рисунок 7

Статья показывает, как сложное и вначале непонятное упростить и запомнить.

Автор Петров А.А., преподаватель программирования в системе 1С:Предприятие 8 в учебном центре Софт-Маркет.

Хотите обучиться программированию 1С с нуля или повысить квалификацию? Ищите все курсы учебного центра по ссылке или оставьте заявку, и наши менеджеры помогут подобрать подходящий курс.


Записаться на курс

Универсальные коллекции значений в языке 1С и их применение

Я даю Согласие на обработку персональных данных в соответствии с Политикой Конфиденциальности и соглашаюсь с условиями Публичного договора-оферты об оказании услуг

Возврат к списку