Содержание:
1. Структура как тип данных в системе конфигурации 1С
2. Способы копирования структуры в конфигурации системы 1С: Предприятие
1. Структура как тип данных в системе конфигурации 1С
В данной статье будет рассмотрен относительно несложный вопрос, с которым могут столкнуться разработчики 1С в своей повседневной работе.
Сразу необходимо напомнить, что структура является особым типом данных в 1С, представляющим собой коллекцию пар «ключ» и «значение». В этом она крайне схожа с другим типом данных 1С - соответствием. Однако в структуре поле ключ всегда имеет строковый тип данных, а его название отвечает требованиям наименования переменных строки 1С. Поле же «значение» в структуре имеет любой тип данных.
Структура чаще всего применяется для значения процесса хранения информации, каждому из которых соответствует собственное имя, кроме того, многие типы встроенных функций и методы объектов 1С принимают в качестве одного или нескольких параметров именно структуру.
Для создания структуры в платформе системы 1С: Предприятие 8.3 и 8.2 используется 2 способа. Первый – создание пустой структуры и вставка в нее необходимого количества пар ключ-значение.
ДанныеСотрудника = Новый Структура;
ДанныеСотрудника.Вставить("Фамилия", "Соколов");
ДанныеСотрудника.Вставить("Имя", "Дмитрий");
Второй способ – создание информационной структуры сразу с необходимым количеством пар.
Дата = Новый Структура("День, Месяц ,Год", 14, 03, 2022);
2. Способы копирования структуры в конфигурации системы 1С: Предприятие
После создания структуры одним из вышеуказанных способов может возникнуть необходимость создания ее копии. Необходимо сразу же отметить, что для копирования структуры в программе 1С: Предприятие 8 будет ошибкой использовать код:
НоваяСтруктура = КопируемаяСтруктура;
В данном случае мы создаем еще одну переменную НоваяСтруктура, которая указывает на такой же набор данных 1С, что и переменная КопируемаяСтруктура. Соответственно при изменении КопируемаяСтруктура будет меняться и НоваяСтруктура.
Самым простым решением задачи скопировать структуру будет являться организация цикла учета по элементам копируемой структуры и их последовательная вставка во вновь созданную.
НоваяСтруктура = Новый Структура;
Для Каждого Элемент Из КопируемаяСтруктура Цикл
НоваяСтруктура.Вставить(Элемент.Ключ, Элемент.Значение);
КонецЦикла
Есть еще одним встречающимся способом копирования структуры является применение функций ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр. Функция ЗначениеВСтрокуВнутр() возвращает строковое системное представление объекта переданного значения. Для обратного преобразования значения применяется функция ЗначениеИзСтрокиВнутр(). Пример кода приводится ниже.
НоваяСтруктура = ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(КопируемаяСтруктура));
Однако синтакс-помощник не рекомендует использовать данный способ. В описании данных функций говорится о том, что они используются для сохранения функциональной совместимости с программой 1С:Предприятие 7.7, а использовать для других целей их не рекомендуется.
Таким образом, оптимальным решением задачи скопировать структуру является организация цикла по элементам копируемой структуры и их последовательная вставка во вновь созданную.
Специалист компании "Кодерлайн"
Инна Изотова