Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на платформе 1С Предприятие. Учебное пособие
.pdf
81
Изменить значение ключа структуры 1С. Если необходи-
мо изменить значение какого-нибудь ключа, то мы, используя
метод Вставить, указываем в качестве первого параметра ключ,
значение которого хотим поменять, а в качестве второго параметра новое значение для данного ключа:
Обход коллекции структуры 1С. Обход структуры осуще-
ствляется с помощью оператора цикла Для каждого…Цикл.
Обойдем уже созданную структуру.
Безошибочное получение значения элемента. Если при об-
ращении к ключу структуры указать название несуществующего
в данной структуре ключа, то программа выдаст ошибку. Но есть
метод объекта Структура, с помощью которого можно обратиться
к значению ключа, не боясь вызвать ошибку в случае промаха.

82
Этот метод – Свойство. Данный метод является функцией и возвращает Истину, если указанный ключ есть, и Ложь, если указанного ключа нет.
Рассмотрим синтаксис метода:
Свойство(<ИмяКлюча>,<ЗаписываемоеЗначение>);
ИмяКлюча - название ключа для поиска свойства.
В параметр ЗаписываемоеЗначение будет возвращено найденное значение. В том случае, если ключа нет в структуре, то
данному параметру присвоится значение Неопределено. Параметр ЗаписываемоеЗначение где-то должен быть определен.
В переменную А запишется значение, которое связанно
с Ключ1. Но если мы напишем так,
то никакой ошибки не возникнет, и в переменной А присвоится
значение Неопределено.
Соответствие в 1С 8.3. Соответствие в языке программи-
рования 1С чем-то похоже на Структуру, это тоже коллекция
пар Ключ и значение. Но в отличие от Структуры в Соответствие,
чтобы получить значение по определенному ключу, нужно обращаться не как к свойству объекта, а через квадратные скобки, и в
качестве ключа можно использовать значение любого типа.
Структура: Структура1.Ключ1
Соответствие: Соответствие1[«Ключ1»]
Соответствие можно создать на всех видах клиентов и в
любом контексте. Сериализируется, т.е. можно передать

83
переменную с типом Соответствие с клиентского контекста на
серверный.
Хоть в ключ и значение соответствия можно записать переменные любого типа, использование типов в этом случае очень
сильно зависит от контекста и вида клиента: мы не можем в клиентском задать в ключ или значение, тип которого работает только в серверном контексте (например, ДокументОбъект.<>).
Новое соответствие создается при помощи конструктора Новый.
Соответствие1 = Новый Соответствие;
Для того чтобы добавить новый элемент соответствия, необходимо использовать метод Вставить, который имеет следующий синтаксис:
Вставить(<Ключ>, <Значение>)
Параметр «Ключ» может иметь любой тип. Это очень важное свойство. Таким образом, с помощью коллекции Соответствие можно в процессе работы устанавливать соответствие любых объектов с любыми объектами. Простой пример
работы с соответствием:
Для того чтобы поменять значение какого-нибудь элемента,
который соответствует определенному Ключу, достаточно для
этого Ключа присвоить новое значение.

84
Обход соответствия 1С. Обходить соответствие можно с
помощью цикла Для каждого…Цикл.
Безошибочное получении значения соответствия 1С. Вы
уже поняли, для того чтобы получить значение элемента соответствия, мы используем квадратные скобки. Но иногда возможны
ситуации, когда применение квадратных скобок неосуществимо.
В таких случаях мы можем использовать метод Получить, который возвращает любое значение, соответствующее ключу. Если
такого ключа нет, то вернется значение Неопределено. Рассмотрим работу данного метода на соответствии с датами в качестве
ключей.

85
Таблицы. В платформе 1С таблицы существуют в двух
основных ипостасях: это таблицы значений, которые являются
объектами универсальной коллекции значений, и непосредственно табличные части документов и справочников.
Таблица значений представляет собой динамический набор
значений, имеющих колонки и столбцы. Информация в таблице
значений не хранится в базе данных и доступна только при работе контекста, в котором она была создана. Пользователи могут
получать доступ к данным, хранящимся в таблице значений посредством элемента формы Табличное поле.
Вся информация в Таблице значений разбита на колонки,
причем каждая колонка таблицы должна иметь свое уникальное
название. В том случае если таблица выводится на форму посредством элемента Табличное поле, то у данного элемента будут все
колонки, которые имеются у таблицы значений с соответствующими именами. Причем количество колонок в Табличном поле
может быть меньше, чем непосредственно в таблице значений, т.
е. не все колонки из таблицы значений можно отображать в табличном поле. Нет никаких ограничений на количество колонок.
Количество колонок, как правило, всегда фиксировано и задается

86
разработчиком на этапе создания нужного функционала, а количество строк переменно. Строки в таблицу значений можно добавлять посредством табличного поля интерактивно, а также используя методы объекта Таблица значений программным способом. Количество строк может быть неограниченно.
Необязательно выводить таблицу значений на форму, программист может использовать ее и просто внутри модуля для
осуществления различных алгоритмов. У Таблиц значений есть
ряд полезных методов, которые позволяют сортировать таблицу
по определенным колонкам, сворачивать, получать итог по конкретной колонке, осуществлять выборку части строк по определенным параметрам и многое другое. Создать Таблицу значений
несложно, делается это с помощью оператора Новый, и она существует в рамках того контекста, в котором был написан конструктор.
Выглядит это так:
Таблица1 = Новый ТаблицаЗначений;
Синтаксис метода Добавить коллекции колонок таблицы
значений выглядит так:
Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
Как видно, у данного метода всего четыре параметра, по аналогии с четырьмя свойствами объекта Колонка таблицы значений».
Параметры Имя, Заголовок и Ширина Вам понятны, тип параметров Имя и Заголовок это строка, а тип параметра Ширина –
число.
Загрузка в табличную часть и выгрузка из табличной
части. Рассмотрим метод табличной части – Загрузить. С помо-
щью данного метода можно загрузить таблицу значений в табличную часть справочника или документа. Причем уже имеющиеся строки табличной части удаляются. Колонки по названиям
и по типам значений у таблицы и у табличной части должны совпадать. Разместим в обработке на форме табличное поле с колонками Комплектующее и Количество.

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

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

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

90
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Ажеронок, В. А. 1С:Предприятие 8.2. Разработка управ-
ляемого интерфейса, примеры и типовые задания / В. А. Ажеронок, А. В. Островерх. - Москва: ООО «1С-Паблишинг», 2017. 72 с. – Текст: непосредственный.
Бобровников, А. Э. 1С:Академия ERP. Подготовка и автоматизация отчетности по МСФО / А. Э. Бобровников, С. В.
Диятян. - Москва: 1С-Паблишинг, 2019 – 533 с. – Текст: непосредственный.
Гладких, Т. В. Разработка прикладных решений для ин-
формационной системы 1С: Предприятие 8.2: учеб. пособие /
Т. В. Гладких, Е. В. Воронова. – Воронеж, ВГУИТ, 2016. - 56 с.
– Текст: непосредственный.
Гладких, Т. В. Прикладное программирование в цифрови-
зации бизнес-процессов : учеб. пособие. / Т. В. Гладких, Л. А.
Коробова, Н. А. Чернышова – Воронеж, ВГУИТ, 2021. - 70 с.
– Текст: непосредственный.
Гончаров, Д. И. Технологии интеграции 1С:Предприятия
8.2 реализация прикладных задач / Д. И. Гончаров, Е. Ю. Хруста-
лева. – Москва: ООО «1С-Паблишинг», 2018. – 602 с. – Текст:
непосредственный.
Низамутдинов, И. И. Программировать в 1С за 9 шагов /
И. И. Низамутдинов. – Москва: ООО «1С-Паблишинг», 2014.
– 502 с. – Текст: непосредственный.
Радченко, М. Г. 1С:Предприятие 8.2. Практическое пособие: примеры и типовые задания / М. Г. Радченко, Е. Ю. Хрусталева. – Москва: ООО «1С-Паблишинг», 2018. – 872 с. – Текст:
непосредственный.
Смирнова, Г. Н. Проектирование экономических инфор-
мационных систем: учебник / Г. Н. Смирнова, А. А. Сорокин, Ю.
Ф. Тельнов. – Москва : Финансы и статистика, 2015. – 510 с.
– Текст: непосредственный.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
