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