Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ПОЭИС_Л6.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
321 Кб
Скачать
☆

Открытие форм документа

Часто требуется программно открыть какую-либо форму доку­мента. Рассмотрим на примерах варианты открытия различных форм документа:

//открытие формы по имени

Документы.Счета.ПолучитьФорму("ОсновнаяФорма").Открыть();

//открытие формы для нового документа

Документы.Счета.ПолучитьФормуНовогоДокумента().Открыть();

//открыть основную форму списка документов

Форма = Документы.Счета.ПолучитьФормуСписка();

Форма.Открыть();

//открыть форму для выбора документа из списка

//текущая форма будет являться владельцем для открываемой формы

Форма = Документы.Счета.ПолучитьФормуВыбора(, ЭтаФорма);

Если НЕ Форма.Открыта() Тогда //если она еще не открыта

Форма.ИмяСохраненияПоложенияОкна = "ПодборСчетов";

КонецЕсли;

//открыть форму или активизировать уже открытую форму

Форма.Открыть();

Работа с табличным частями

Обращение к табличным частям документа производится по их именам. Для обхода строк табличной части рекомендуется приме­нять конструкцию «Для Каждого...».

Например, ниже показан фрагмент модуля документа ПриходнаяНакладная:

//для каждой строки сформируем движения

//по регистру остатков УчетНоменклатуры

Для Каждого СтрокаСостава Из Состав Цикл

Движение = Движения.УчетНоменклатуры.ДобавитьПриход();

Движение.Период = Дата;

Движение.Номенклатура = СтрокаСостава.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = СтрокаСостава.Количество;

КонецЦикла;

Движения.УчетНоменклатуры.Записать();

Замечание. В 1C: Предприятии 8 больше нет понятия «итог по колонке», т.е. система больше не поддерживает хранение итога по колонке табличной части при установке флажка, как это было в версии 7.7. Если требуется хранить и быстро получать итоговую сумму по колонке табличной части, то для этого нужно завести реквизит документа и заполнять его, например, в процедуре ПередЗаписью.

(Форма документа)

Движения документа

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

Рассмотрим типичную схему создания новых движений по реги­стру остатков и регистру бухгалтерии при проведении документа:

ВидыСубконто = ПланыВидовХарактеристик.ВидыСубконто;

//по каждой строке сформируем движения по регистру УчетНоменклатуры

Для Каждого СтрокаСостава Из Состав Цикл

Движ = Движения.УчетНоменклатуры.ДобавитьПриход();

Движ.Период = Дата;

Движ.Склад = Склад;

Движ.Номенклатура = СтрокаСостава.Номенклатура;

Движ.Количество = СтрокаСостава.Количество;

КонецЦикла;

// сформируем одну бухгалтерскую проводку на общую сумму

Движ = Движения.Основной.Добавить();

Движ. Период = Дата,-

Движ.Организация = Организация;

Движ.СчетДт = ПланыСчетов.Основной.НДСпоПриобретеннымЦенностям;

Движ.СчетКт = ПланыСчетов.Основной.Поставщики;

Движ.СубконтоКт[ВидыСубконто.Контрагенты] = Контрагент;

Движ.Сумма = Состав.Итог("НДС");

//записываем движения в базу данных

Движения.УчетНоменклатуры.Записать();

Движения. Основной. Записать (), ;