Все проекты English Написать директору Вебинары
Выбор региона
Ваш город:Алматы
Поиск

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

Время чтения: ~2 мин.

Актуальность проверена: 07 . 04 . 2024

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

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

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

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

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

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

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

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


Рисунок 1

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

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

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


Рисунок 2


Рисунок 3

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


Рисунок 4

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


Рисунок 5

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

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

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

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

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

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

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


Рисунок 6

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


Рисунок 7

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

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

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


Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Нет времени читать? Пришлем вам на почту!

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

Подскажем решение для вашей задачи

Заказать помощь ИТ-специалиста