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

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

Создание внешней обработки
Создаем внешнюю обработку. В модуле внешней обработки создаем экспортную процедуру «СведенияОВнешнейОбработке». В параметр «Вид» устанавливаем значение «ЗаполнениеОбъекта», настройку команды «Использование» устанавливаем «ОткрытиеФормы».
Перейдем к описанию модуля формы. Прежде всего при открытии формы нам необходимо заполнить таблицу данными табличной части. Для этого мы используем серверную процедуру «ПриСозданииНаСервере» в которой получим ссылку на документ и заполним реквизит «Товары» результатом запроса к табличной части документа.
Мы описали заполнение формы исходными данными и переходим к описанию функционала изменения значений табличной части. На данном этапе мы реализуем задачу нашей обработки. Здесь можно изменить количество, цену, ставку налога и т.д. Не забываем, что состав колонок реквизита формы Товары тоже должен соответствовать поставленной задаче. Я выбрал самый простой вариант – изменение цены.
1С изменить значение в табличной части документа
Перенос изменений в документ
Учитывая данную возможность, обработаем в цикле строки документа и установим новые значения. Для поиска соответствующей строки используем реквизит «НомерСтроки».
Если мы меняем какое-либо числовое значение, то чаще всего необходимо выполнить пересчет связанных значений в строке. Например, изменяя цену необходимо пересчитать сумму, сумму НДС и что-то еще. Для этого лучше использовать типовые процедуры пересчета табличной части. Перенесем из документа в нашу форму типовой обработчик события изменения цены – «ТоварыЦенаПриИзменении».
1С-Предприятие 8.3. Попытался изменить значения столбца «Ставка НДС» в таблице «Номенклатура» на «Без НДС», за неимением группировок и работой со всем столбцом решил написать скрипт, значение столбца получить удалось, да и количество записей + значение, которое записать нужно, но столкнулся со следующим: функция Записать(); ругается на отсутствие метода или что-то такое.
Вот листинг:
Процедура УстановитьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.СтавкаНДС КАК СтавкаНДС1,
| Номенклатура.СтавкаНДС.Ссылка,
| Номенклатура.СтавкаНДС.Порядок
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ДЛЯ ИЗМЕНЕНИЯ»;
Выборка=Запрос.Выполнить().Выгрузить();
//ТекЗапись = Справочник.Номенклатура.СоздатьМенеджерЗаписи();
Для каждого Строка из Выборка Цикл
Документ = Строка;
Документ.СтавкаНДС1 = Перечисления.СтавкиНДС.БезНДС;
Сообщить(Документ.СтавкаНДС1);
Записать();
КонецЦикла;
Каким образом обновить/сохранить/записать эту несчастную «Без НДС» во все поля столбца ?
До этого никогда не работал с 1С и документации адекватной найти не получилось
Быстрое решение. Запустите групповую обработку справочников и документов (обработка, которая есть во всех типовых конфигурациях и в обычном и в управляемом вариантах интерфейсов), выберите тип справочник номенклатура, наложите при необходимости отбор и изменяйте значение реквизита для всех элементов.
Путь программиста. Нужно запросом отобрать не свойства ставки НДС из справочника номенклатуры, а ссылки на элементы справочника (с отбором на то, что это не группа). Далее по выборке из запроса по ссылке получаете объект, заменяете ставку НДС и записываете назад в базу. Выглядит примерно так:
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы