Универсальные коллекции значений в языке 1С и их применение
Эта статья адресована тем, кто начинает программировать в среде 1С: Предприятие 8.3.
Усвоив практические задания и теорию сертифицированных курсов по программированию 1С перед начинающим разработчиком-программистом возникают проблемы связанные с пониманием сложных механизмов типовых конфигураций , в которых работает будущий работодатель. Одной из таких часто используемых типовых конфигураций является 1С: Бухгалтерия предприятия 3.0.
При написании программного кода программист часто встречается с необходимостью получать запросами данные на сервере, хранить их на протяжении сеанса и использовать в алгоритмах это множество данных, используя лишь один символ или одно имя как массив или как другой тип универсальной коллекции значений.
В приведенном ниже примере описывается формирование массива, возвращаемого функцией СписокДокументовПриемНаРаботу(), написанной в общем модуле ЗарплатаКадрыОбновлениеСПредыдущейРедакции типовой конфигурации Бухгалтерия предприятия 3.0(3.0.35.27).`
Что такое массив?
Массив представляет собой пронумерованную коллекцию значений произвольного типа. К элементу массива можно обращаться по его индексу. В качестве элементов массива могут выступать, в частности, другие массивы. Это позволяет создавать многомерные массивы. Безразмерным можно назвать массив количество элементов которого неограниченно.
Пример использования безразмерного массива.
В общем модуле ЗарплатаКадрыОбновлениеСПредыдущейРедакции есть функция (в конфигурации Бухгалтерия предприятия редакция 3.0 (3.0.35.27)
В этой функции реализован запрос к серверу где в прикладном объекте Документ.УдалитьПриемНаРаботуВОрганизацию есть данные, представляющие множество значений. Это ссылки на документы. Чтобы сохранить это множество для дальнейшего использования разработчики создали безразмерный массив СписокДокументов, который заполняется в цикле. Данная функция возвращает Ссылки на документы, которые хранятся в массиве СписокДокументов.
Чтобы посмотреть, как работает функция и какой результат она возвращает можно воспользоваться отладчиком. Для этого необходимо обратиться к событию, при котором отрабатывает эта функция. Чтобы упростить задачу создадим внешнюю обработку, с помощью которой проверим работоспособность функции.
В основной конфигурации в меню Файл-Новый-Внешняя обработка создадим обработку ПроверкаРаботоспособностиФункции
И реквизит Комментарий –тип:Строка
Затем создадим форму обработки с помощью конструктора формы, на форме создадим реквизит формы «ЭлементыМассива» тип-СписокЗначений
Создадим на форме команду «Проверка», для которой в модуле формы создадим процедуру-обработчик.
Здесь есть тонкости, заключающиеся в том, где компилятор выполнит процедуру: &НаКлиенте или &НаСервере.
Функция СписокДокументовПриемНаРаботу() не экспортная и чтобы получить возвращаемый ею массив ее надо сделать экспортной.
Тогда можно &НаКлиенте получить возвращаемый ею массив.
В противном случае придется копировать код функции (представлен выше) в процедуру &НаСервере.
В моем примере Функция СписокДокументовПриемНаРаботу() Экспорт преобразована в экспортную.
Напишем код процедура-обработчикаЭтот простой способ позволит протестировать и увидеть результат работы функции, выполнив обучаемыми разработчиками -программистами самостоятельную работу и приобрести собственный практический опыт при редактировании функциональности процедур и функций 1С: Бухгалтерия 3.0.
Статья показывает, как сложное и вначале непонятное упростить и запомнить.
Автор Петров А.А., преподаватель программирования в системе 1С:Предприятие 8 в учебном центре Софт-Маркет.
Хотите обучиться программированию 1С с нуля или повысить квалификацию? Ищите все курсы учебного центра по ссылке или оставьте заявку, и наши менеджеры помогут подобрать подходящий курс.
Записаться на курс
Универсальные коллекции значений в языке 1С и их применение