Один Ответ на “Базовый курс. Занятие №10”

  1. Aleksandr.nett 20.03.2016 в 20:40

    Домашнее задание № 10 Блок 3.
    Создадим объект План счетов «ПланСчетовБУ»
    С предопределенными элементами, на вкладке прочее, нажав по кнопке прочее , в данном списке.
    Обеспечим программное заполнение реквизита Порядок счета, установив флаг «Автопорядок по коду» на вкладке данные формы редактирования объекта ПланСчетов.
    Аналитический учет для плана счетов обеспечим
    создав ПланВидовХарактеристик – «ВидыСубконтоБУ» , установив тип значения характеристик –
    «СправочникСсылка.Номенклатура»
    В форме объекта редактирования ПланВидовХарактеристик на вкладке прочее , по кнопке предопределенные, создадим предопределенный элемент – «Номенклатура» – тип «СправочникСсылка.Номенклатура».
    Для плана счетов на вкладке Субконто в реквизите Виды субконто укажем – «ВидыСубконтоБУ»
    Реализуем проводки по регистру бухгалтерии для документа «ПоступлениеТоваров» в модуле объекта , в процедуре обработка проведения:
    <

    Движения.РегистрБухгалтерии.Записывать   = Истина;  
    Для Каждого ТекСтрокаТовары Из Товары Цикл
    Движение                  = Движения.РегистрБухгалтерии.Добавить();
                Движение.СчетДт       = ПланыСчетов.ПланСчетовБУ.Товары;
                Движение.СубконтоДт = ТекСтрокаТовары.Номенклатура;
                Движение.СчетКт        = ПланыСчетов.ПланСчетовБУ.Поставщики;
                Движение.Сумма         = ТекСтрокаТовары.Сумма;
    КонецЦикла;
    <

    Создадим документ : Авансовый отчет
    Реализуем проводки по регистру бухгалтерии в модуле объекта:
    <

    Процедура ОбработкаПроведения(Отказ, РежимПроведения)  
        Движения.РегистрБухгалтерии.Записывать = Истина;
        Для каждого ТекСтрокаТовары Из Товары Цикл
        // Регистр бухгалтерии
        Движение                  = Движения.РегистрБухгалтерии.Добавить();
        Движение.СчетДт       = ПланыСчетов.ПланСчетовБУ.Товары;
        Движение.СубконтоДт = ТекСтрокаТовары.Номенклатура;
        Движение.СчетКт        = ПланыСчетов.ПланСчетовБУ.Поставщики;
        Движение.Сумма         = ТекСтрокаТовары.Сумма;   
       КонецЦикла;    
    КонецПроцедуры
    <

    Создадим документ : Операция, Форму документа, в качестве таблицы на форме разместим Таблице движений Регистра Бухгалтерии.
    Обеспечим заполнение проведение для документа «Операция» по регистру бухгалтерии в модуле набора записей:
    <

    Процедура ПередЗаписью(Отказ, РежимЗаписи)
       
        Если ТипЗнч(ЭтотОбъект.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.Операция") Тогда
        ЗаполнитьПериод(Отказ);
        КонецЕсли;
    КонецПроцедуры

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