Если такие поля не преобразовывать, Вы получите ошибку Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.
Построение запросов к базе на 1С Предприятие 8.3
Сам синтаксис очень сильно напоминает классический T-SQL, за исключением того, что в 1С с помощью языка запросов можно только получать данные, используя конструкцию Выбрать(select). Язык поддерживает и более сложные конструкции, например, вложенные запросы (запрос в запросе). Запросы в 1С 8 можно составлять как на кириллице, так и на латинице.
Запрос вернёт таблицу с наименованиями номенклатуры.
Рядом с конструкцией ВЫБРАТЬ можно разместить ключевые слова ДЛЯ ИЗМЕНЕНИЯ, РАЗРЕШЕННЫЕ, РАЗЛИЧНЫЕ, ПЕРВЫЕ …
ДЛЯ ИЗМЕНЕНИЯ — блокирует записи таблицы на время транзакции (не актуально для управляемых блокировок).
РАЗРЕШЕННЫЕ — выбирает только записи из таблицы, на которые есть права у текущего пользователя.
РАЗЛИЧНЫЕ — означает, что в результат не попадет дублирующих строк.
ПЕРВЫЕ n — в языке 1С 8.3 запрос отберет только n первых записей.
Как добавить реквизит получения оригинала документов в УТ — «ИнфоСофт»
ВЫБОР (CASE)
Пример возвратит в поле «ВидНоменклатуры» текстовое значение — «Товар» или «Услуга».
В примере мы отбираем записи, у которых значение реквизита «Услуга» установлено в положение «Истина». В данном примере можно было бы обойтись и таким условием:
С помощью оператора «ЗНАЧЕНИЕ()» в условиях использовать обращение к предопределенным элементам и перечислениям в запросе 1С:
Значения времени могут указываться следующим образом:
Чаще всего условия указываются в виде параметров, передаваемых в запрос:
Условие можно наложить на тип реквизита, если он составного типа:
Если необходимо ограничивать отбор из списка значений или массива, можно поступить следующим образом:
Условие может быть и сложное, состоящее из нескольких условий:
Справочник Выборка получается с помощью методов Выбрать и Выбрать Иерахически он позволяет обойти элементы справочника в цикле, с помощью метода Следующий.
Справка
- Отказ . Тип: Булево . Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина , то запись выполнена не будет. Значение по умолчанию Ложь .
- ПроверяемыеРеквизиты . Тип: Массив . Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Для формы документа, если при конфигурировании для документа свойство Проведение установлено в Разрешить , событие вызывается только при проведении. Если документ не проводится (свойство Проведение установлено в Запретить ), то вызывается при записи.
Промокоды на Займер на скидки
Дополнительные реквизиты объектов с помощью плана видов характеристик
- самостоятельно проверить заполненность всех реквизитов и очистить массив ПроверяемыеРеквизиты , чтобы платформа не выполняла их проверку
- проверить часть реквизитов самостоятельно, удалить их из массива ПроверяемыеРеквизиты , а оставшиеся оставить на проверку платформе
- добавить в массив ПроверяемыеРеквизиты какие-то реквизиты, чтобы платформа проверила и их тоже
- вообще отказаться от проверки заполненности реквизитов, очистив массив
ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
- Отказ . Тип: Булево . Если в теле процедуры-обработчика установить данному параметру значение Истина , то будет выполнен отказ от продолжения работы после выполнения проверки заполнения. Значение по умолчанию Ложь .
- ПроверяемыеРеквизиты . Тип: Массив . Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение() . Если для документа при конфигурировании свойство Проведение установлено в Разрешить , то вызывается только при проведении. Если документ не проводится (установлено Запретить ), то вызывается при записи.
Информацию о выделенных строках вы можете получить только в модуле формы документа, причем, если мне не изменяет память, это должна быть клиентская процедура.
Изменение реквизитов формы
Чтение состава реквизитов формы выполняется функцией ПолучитьРеквизиты ( Путь >) , возвращающей массив типа РеквизитФормы . Параметр функции указывает путь к родительскому реквизиту (в виде строки). Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.
Изменение реквизитов выполняется методом ИзменитьРеквизиты ( ДобавляемыеРеквизиты >, УдаляемыеРеквизиты >) объекта УправляемаяФорма . В параметры ДобавляемыеРеквизиты и УдаляемыеРеквизиты передаются массивы с элементами типа РеквизитФормы .
Процесс изменения состава реквизитов является достаточно ресурсоемким. Фактически выполняется пересоздание формы. В связи с этим работа с реквизитами формы выполняется в пакетном режиме.
// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив ;
ДобавляемыеРеквизиты . Добавить(Новый РеквизитФормы («Покупатель», Новый ОписаниеТипов ( «СправочникСсылка.Контрагенты» ), , «Клиент» ));
// Изменения состава реквизитов
ИзменитьРеквизиты ( ДобавляемыеРеквизиты );
Решение задач по управляемым формам — Тема № 10: Как реализовать заполнение табличной части документа при помощи формы подбора, Курсы по 1С
- При доработке типовых конфигураций для облегчения процедуры последующего обновления. В этом случае будет изменен только модуль формы. Модули намного проще обновлять, чем форму.
- При реализации некоторых общих алгоритмов. Например, в подсистеме БСП «Запрет редактирования реквизитов объектов» для всех подключенных к подсистеме объектов предусмотрено программное создание кнопки для включения возможности редактирования реквизитов.
- При реализации некоторых специфических алгоритмов. Например, в справочнике Номенклатура создаются поля для редактирования дополнительных реквизитов.
Изменение элементов формы
Для управления составом элементов у объекта УправляемаяФорма есть коллекция Элементы . У коллекции есть несколько методов:
Коллекция Элементы доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Вставить () , Добавить () , Переместить () и Удалить () ) можно только на сервере. Искать и получать количество элементов (методы Найти () и Количество () ) можно как на клиенте, так и на сервере. Элементами коллекции могут быть:
Элементам формы можно программно назначить обработчики событий. Для этих целей предназначен метод УстановитьДействие ( ИмяСобытия >, Действие >) .
Рассмотрим несколько наиболее распространенных на практике примеров работы с командами, реквизитами и элементами формы.
// Создание команды
Команда = Команды . Добавить ( «ИсторияИзменений» );
Команда . Действие = «Подключаемый_ОтобразитьИсторию» ; // В форме должна быть процедура с указанным наименованием
Команда . Заголовок = «История изменений…» ;
// Создание кнопки и связь ее с командой
Элемент = Элементы . Добавить ( «ИсторияИзменений» , Тип ( «КнопкаФормы» ));
Элемент.ИмяКоманды = «ИсторияИзменений» ;
Добавление реквизита и связанного с ним поля ввода:
ЭлементПокупатель . УстановитьДействие ( «ПриИзменении» , «Подключаемый_ПокупательПриИзменении» );
&НаКлиенте
Процедура Подключаемый_ПокупательПриИзменении ( Элемент )
// Действия события
КонецПроцедуры
Процедурам, которые устанавливаются в качестве обработчиков событий из кода с помощью метода УстановитьДействие () , рекомендуется задавать префикс Подключаемый_.
Скачать обработку с примерами программного поиска и изменения реквизитов, команд и элементов управляемой формы можно ЗДЕСЬ.
Остались вопросы?
Спросите в комментариях к статье.
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы