Продвинутый курс. Занятие №16
Второе занятие 3-го блока продвинутого курса по программированию.
Необходимо изучить следующие главы текущего блока.
Глава 5. Складской учет
Глава 6. Универсальная аналитика
Глава 7. Кейсы
Глава 8. Отчеты бухгалтерского учета
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Задание выполнено, частично освоено решение.
Создан документ “Выпуск продукции”. Реализовано закрытие требуемых счетов.
Задание выполнила. Создала документ “Выпуск продукции”, реализовала проведение количества. В “закрытии месяца” реализовала закрытие затратных счетов и расчет себестоимости через пакет запросов с последующим формированием проводок. Из вирт таблицы ОборотыДтКт за период получаю кол-во продукции которое было выпущена в разрезе субконто 20 счета(ВыпускПродукции). Формирую 2 вспомогательные таблицы с группировками по подразделению(ВыпускПодразделение) и подразделению+заказ(ВыпускЗаказ). Для закрытия 26 счета связываю ВыпускПродукции с остатками по счету и ВыпускПодразделение -> Закрытие26Счета. Похожим образом формируется запрос для закрытия 25 счета -> Закрытие25Счета. Для расчета себестоимости связываю ВыпускПродукции с остатками по 20 и таблицами закрытия счетов. На тестовых данных решение проверила.
Задание выполнено. Резюме: создал документ “Выпуск продукции”, прописал формирование его движений, создал счета 10 и 43, ввел в базу тестовые данные из задания. Закрытие затрат при проведении “Закрытия месяца” делаю отдельно для каждого счета, формирую таблицы для создания проводок. Пример запроса:
<code> ВЫБРАТЬ
&Счет20 КАК СчетДт,
РегистрУправленческийОстатки.Счет КАК СчетКт,
РегистрУправленческийОстатки.Субконто1 КАК Цех,
РегистрУправленческийОстатки.Субконто2 КАК Заказ,
ВТВыпускПродукции.Номенклатура КАК Товар,
РегистрУправленческийОстатки.СуммаОстатокДт * ВТВыпускПродукции.Выпуск / ВТВыпускЦехЗаказ.Выпуск КАК Сумма
ИЗ
РегистрБухгалтерии.РегистрУправленческий.Остатки(ГраницаКонцаМесяца, Счет = &Счет25, , ) КАК РегистрУправленческийОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТВыпускЦехЗаказ КАК ВТВыпускЦехЗаказ
ПО РегистрУправленческийОстатки.Субконто1 = ВТВыпускЦехЗаказ.Цех
И РегистрУправленческийОстатки.Субконто2 = ВТВыпускЦехЗаказ.Заказ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТВыпускПродукции КАК ВТВыпускПродукции
ПО РегистрУправленческийОстатки.Субконто1 = ВТВыпускПродукции.Цех
И РегистрУправленческийОстатки.Субконто2 = ВТВыпускПродукции.Заказ</code>
После закрытия затрат еще раз корректирую проводки реализации. Тестовый пример пройден успешно.
Задание выполнила. Добавила документ “Выпуск продукции”. Для закрытитя счетов затрат в модуле документа “Закрытие месяца” создается временная таблица “КоличествоВыпуска”, затем выполняю соединение с ней в запросах по остаткам 25 , 26 и 20 счетов. Для 25-го счета соединение делаем по двум субконто, для 20-го и 26-го по одному. В запросах настраиваю итоги, проводки формирую в циклах обхода результатов запросов.
Задание №16 выполнено.
Создан счет 43 (Продукция) с признаком Количественный и видом субконто Товары.
Создан документ ВыпускПродукции, настроены реквизиты шапки, создана табличная часть Товары с необходимыми реквизитами. Прописаны движения про регистру бухгалтерии, а также по регистру накопления ОстаткиТоваров (приход, чтобы можно было реализовывать продукцию).
Доработан документ ЗакрытиеМесяца.
Для закрытия счетов 25 и 26 выполняется пакетный запрос, в первом запросе которого формируется ВТ ВыпускПродукции, содержащая информацию о кол-ве выпущенной продукции в разрезе подразделений и заказов. Во втором запросе пакета формируется ВТ ОстаткиБух, содержащая остатки по счетам 25 и 26, которые необходимо распределить, так же в разрезе подразделений и заказов (для 25). Ну и в 3-м запросе путем соединения этих таблиц определяются суммы списания по каждому подразделению и заказу.
При обработке результата запроса учитывается что при распределении на продукцию возможны ошибки округления, т.о. в результате сумма будет списана точно. Кусок кода процедуры ОбработкаПроведения, относящийся к распределению затрат:
<code>
// закрытие затратных счетов 25 и 26
Запрос = Новый Запрос;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
“ВЫБРАТЬ
| РегистрУправленческийОбороты.Субконто1 КАК Продукция,
| РегистрУправленческийОбороты.КорСубконто1 КАК Подразделение,
| РегистрУправленческийОбороты.КорСубконто2 КАК Заказ,
| РегистрУправленческийОбороты.КоличествоОборотДт КАК Количество
|ПОМЕСТИТЬ ВыпускПродукции
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Обороты(&НМ, &КМ, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Продукция), , , КорСчет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОсновноеПроизводство), ) КАК РегистрУправленческийОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РегистрУправленческийОстатки.Субконто1 КАК Подразделение,
| РегистрУправленческийОстатки.Субконто2 КАК Заказ,
| РегистрУправленческийОстатки.СуммаОстатокДт КАК СуммаОстаток25,
| 0 КАК СуммаОстаток26
|ПОМЕСТИТЬ ОстаткиБух
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Остатки(&КМ, Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщепроизводственныеРасходы), , ) КАК РегистрУправленческийОстатки
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РегистрУправленческийОстатки.Субконто1,
| NULL,
| 0,
| РегистрУправленческийОстатки.СуммаОстатокДт
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Остатки(&КМ, Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщехозяйственныеРасходы), , ) КАК РегистрУправленческийОстатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОстаткиБух.Подразделение КАК Подразделение,
| ОстаткиБух.Заказ КАК Заказ,
| ОстаткиБух.СуммаОстаток25 КАК СуммаОстаток25,
| ОстаткиБух.СуммаОстаток26 КАК СуммаОстаток26,
| ВыпускПродукции.Продукция КАК Продукция,
| ЕСТЬNULL(ВыпускПродукции.Количество, 0) КАК Количество
|ИЗ
| ОстаткиБух КАК ОстаткиБух
| ЛЕВОЕ СОЕДИНЕНИЕ ВыпускПродукции КАК ВыпускПродукции
| ПО ОстаткиБух.Подразделение = ВыпускПродукции.Подразделение
| И ОстаткиБух.Заказ = ВыпускПродукции.Заказ
|ИТОГИ
| МАКСИМУМ(СуммаОстаток25),
| МАКСИМУМ(СуммаОстаток26),
| СУММА(Количество)
|ПО
| Подразделение,
| Заказ”;
Запрос.УстановитьПараметр(“НМ”, НМ);
Запрос.УстановитьПараметр(“КМ”, Новый Граница(КМ,ВидГраницы.Включая));
Результат = Запрос.Выполнить();
ВыборкаПодразделение = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПодразделение.Следующий() Цикл
ВсегоКолПоПодразделению = ВыборкаПодразделение.Количество;
Если ВсегоКолПоПодразделению = 0 Тогда
Продолжить;
КонецЕсли;
ОстатокСуммы26 = ВыборкаПодразделение.СуммаОстаток26;
ВыборкаЗаказ = ВыборкаПодразделение.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВсегоЗак = ВыборкаЗаказ.Количество();
СчЗак=0;
Пока ВыборкаЗаказ.Следующий() Цикл
СчЗак=СчЗак+1;
ВсегоКолПоЗаказу = ВыборкаЗаказ.Количество;
Если ВсегоКолПоЗаказу = 0 Тогда
Продолжить;
КонецЕсли;
ОстатокСуммы25 = ВыборкаЗаказ.СуммаОстаток25;
ВыборкаПродукция = ВыборкаЗаказ.Выбрать();
ВсегоНом = ВыборкаПродукция.Количество();
СчНом=0;
Пока ВыборкаПродукция.Следующий() Цикл
СчНом = СчНом+1;
Если СчНом=ВсегоНом Тогда
СуммаРаспределения25 = ОстатокСуммы25;
Иначе
СуммаРаспределения25 = Окр(ВыборкаЗаказ.СуммаОстаток25*ВыборкаПродукция.Количество/ВсегоКолПоЗаказу,2);
КонецЕсли;
Если СуммаРаспределения25>0 Тогда
Проводка = Движения.РегистрУправленческий.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.ОсновноеПроизводство;
Проводка.СубконтоДт.Подразделения = ВыборкаПодразделение.Подразделение;
Проводка.СубконтоДт.ЗаказПокупателя = ВыборкаЗаказ.Заказ;
Проводка.СубконтоДт.Товары = ВыборкаПродукция.Продукция;
Проводка.СчетКт = ПланыСчетов.Управленческий.ОбщепроизводственныеРасходы;
Проводка.СубконтоКт.Подразделения = ВыборкаПодразделение.Подразделение;
Проводка.СубконтоКт.ЗаказПокупателя = ВыборкаЗаказ.Заказ;
Проводка.Сумма = СуммаРаспределения25;
ОстатокСуммы25 = ОстатокСуммы25-СуммаРаспределения25;
КонецЕсли;
Если СчЗак=ВсегоЗак и СчНом=ВсегоНом Тогда
СуммаРаспределения26 = ОстатокСуммы26;
Иначе
СуммаРаспределения26 = Окр(ВыборкаПодразделение.СуммаОстаток26*ВыборкаПродукция.Количество/ВсегоКолПоПодразделению,2);
КонецЕсли;
Если СуммаРаспределения26>0 Тогда
Проводка = Движения.РегистрУправленческий.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.ОсновноеПроизводство;
Проводка.СубконтоДт.Подразделения = ВыборкаПодразделение.Подразделение;
Проводка.СубконтоДт.ЗаказПокупателя = ВыборкаЗаказ.Заказ;
Проводка.СубконтоДт.Товары = ВыборкаПродукция.Продукция;
Проводка.СчетКт = ПланыСчетов.Управленческий.ОбщехозяйственныеРасходы;
Проводка.СубконтоКт.Подразделения = ВыборкаПодразделение.Подразделение;
Проводка.Сумма = СуммаРаспределения26;
ОстатокСуммы26 = ОстатокСуммы26-СуммаРаспределения26;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Движения.РегистрУправленческий.Записать();
// закрытие счета Основное производство
ЗакрытьСчет20();
</code>
На приведенном в задании тестовом наборе данных получены правильные результаты списаний.
Доведение списанной стоимости до средневзвешенной, в принципе, работало. Но необходимо учесть, что корректируемые суммы могли списываться на счета, по которым в свою очередь также необходима корректировка суммы. Также возможна ситуация зацикливания списаний.
Чтобы учесть это все, механизм доведения стоимости по БУ был переработан. Создана рекурсивно вызываемая процедура СформироватьДвиженияПоСтоимостиБУ(ТаблСчета, Отказ), в которую передаются счета, по которым необходимо произвести расчет суммы и параметр Отказ. Код приводить не буду, чтобы не загромождать отчет, опишу принцип работы.
Первоначально в процедуру передаются все счета, на которых производится учет номенклатуры. Если в результате работы процедуры были скорректированы движения, в которых дебетовым является один из счетов учета, то набор записей записывается и вызывается эта же процедура с новым списком счетов. Если дебетовым был счет 20, дополнительно вызывается процедура закрытия 20-го счета (для обновления информации о стоимости продукции) и в список добавляется счет 43. Для предотвращения возможного зацикливания при формировании очередной проводки коррекции проверяется уже сформированный набор записей на наличие точно такой же проводки (по счетам и аналитике). Если проводка существует и счет дебета является одним из счетов учета номенклатуры, то это означает зацикливание списаний, Отказ устанавливается в значение Истина и процедура прекращает работу с выдачей диагностического сообщения.
Самостоятельно задание сделал только наполовину. Остальное смотрел по решению. Ну тут моя вина. Катастрофически не хватает времени до конца все осознать в данном блоке (а для этого мне нужно пару-тройку раз пройтись по материалу). Из-за этого частичное непонимание.
Создан предопределенный счет “43” и документ “Выпуск”, который делает проводки по выпуску с нулевой суммой. В документ “Закрытие месяца” добавлены процедуры, осуществляющие списание 20, 25, 26 счетов. Документ работает следующим образом. Сначала получаем аналитику (Подразделение, Заказ, Номенклатура) и количество выпуска за месяц (оборот в дебет счета 43 со счета 20), результат помещаем во временную таблицу. После этого анализируем остатки по счетам 25, 26 и списываем их на 20 счет, используя внутреннее соединение по субконто с временной таблицей выпуска. При этом сумма на остатке распределяется пропорционально количеству выпущенной продукции. После списания 25, 26 счетов записываем получившиеся проводки в БД. Далее, используя временную таблицу выпуска, закрываем 20 счет на 43. Снова записываем проводки в БД. И на последнем шаге производим доведение стоимости до среднезвешенной. Таким образом, учитывается ситуация, когда выпущенная продукция реализуется с нулевой суммой.
Откровенно признаться, последние домашние работы не прорешиваю от и до, а просто выкладываю предполагаемую схему решения с частичными кусочками реализации. Наверное, это из-за ужасного временного цейтнота. Вот и в этот раз… С документов проблем не возникло. 26 счет закрываю с помощью запроса
<code>
ВЫБРАТЬ
РегистрУправленческийОстатки.Счет,
РегистрУправленческийОстатки.СуммаОстатокДт,
РегистрУправленческийОстатки.Субконто1 КАК Цех
ПОМЕСТИТЬ Остатки26
ИЗ
РегистрБухгалтерии.РегистрУправленческий.Остатки(, Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщехозяственныеРасходы), , ) КАК РегистрУправленческийОстатки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РегистрУправленческийОборотыДтКт.СчетДт,
РегистрУправленческийОборотыДтКт.СчетКт,
РегистрУправленческийОборотыДтКт.СубконтоДт1 КАК Номенклатура,
РегистрУправленческийОборотыДтКт.СубконтоКт1 КАК Цех,
РегистрУправленческийОборотыДтКт.КоличествоОборотДт
ПОМЕСТИТЬ ВыпускПродукции
ИЗ
РегистрБухгалтерии.РегистрУправленческий.ОборотыДтКт(, , , СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.Продукция), , СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОсновноеПроизводство), , ) КАК РегистрУправленческийОборотыДтКт
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВыпускПродукции.Цех,
СУММА(ВыпускПродукции.КоличествоОборотДт) КАК ВсегоВыпустили
ПОМЕСТИТЬ ВсегоПоЦеху
ИЗ
ВыпускПродукции КАК ВыпускПродукции
СГРУППИРОВАТЬ ПО
ВыпускПродукции.Цех
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВыпускПродукции.СчетДт,
ВыпускПродукции.СчетКт,
ВыпускПродукции.Номенклатура,
ВыпускПродукции.Цех,
ВыпускПродукции.КоличествоОборотДт,
Остатки26.СуммаОстатокДт,
ВсегоПоЦеху.ВсегоВыпустили,
ВЫБОР
КОГДА ЕСТЬNULL(ВсегоПоЦеху.ВсегоВыпустили, 0) = 0
ТОГДА 0
ИНАЧЕ ЕСТЬNULL(Остатки26.СуммаОстатокДт, 0) * ВыпускПродукции.КоличествоОборотДт / ВсегоПоЦеху.ВсегоВыпустили
КОНЕЦ КАК СуммаПроводки
ИЗ
ВыпускПродукции КАК ВыпускПродукции
ЛЕВОЕ СОЕДИНЕНИЕ Остатки26 КАК Остатки26
ПО ВыпускПродукции.Цех = Остатки26.Цех
ЛЕВОЕ СОЕДИНЕНИЕ ВсегоПоЦеху КАК ВсегоПоЦеху
ПО ВыпускПродукции.Цех = ВсегоПоЦеху.Цех
</code>
По 25 скорее всего такой же принцип, только добавляется еще одно измерение Заказ, которое в дальнейшем присутствует в условии соединения. 20 счет закрываем путем присоединения к таблице ВыпускПродукции таблиц закрытия 25 и 26 счетов.
Сразу скажу, что с производством никогда не сталкивался, поэтому скорее всего что-нибудь напутал.
Создал документ Выпуск продукции с реквизитами Цех-тип(спр-к Подразделения и Заказ-Заказ покупателя), таб. часть Товары с
реквизитами номенклатура и количество. Создал счет 43 с признаком количественный Активный. Далее обеспечил проведение документа с заполнением соотвествующих ресурсов и измерений.
Создал документ Выпуск продукции с реквизитами Цех-тип(спр-к Подразделения и Заказ-Заказ покупателя), таб. часть Товары среквизитами номенклатура и количество. Создал счет 43 с признаком количественный Активный. Далее обеспечил проведение документа с заполнением соотвествующих ресурсов и измерений.
Далее вводил данные по примеру, но до закрытия так и не добрался. Изучаю Буху )))
Закрытие счетов 25,26
Запрос.Текст =
“ВЫБРАТЬ
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2,
| РегистрУправленческийОбороты.Субконто3,
| СУММА(РегистрУправленческийОбороты.КоличествоКорОборотКт) КАК КоличествоКорОборотКт
|ПОМЕСТИТЬ Выпуск
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Обороты(&НачалоМесяца, &КонецМесяца, , Счет =
ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОсновноеПроизводство), , , КорСчет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ГотоваяПродукция), ) КАК
РегистрУправленческийОбороты
|
|СГРУППИРОВАТЬ ПО
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2,
| РегистрУправленческийОбороты.Субконто3
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РегистрУправленческийОбороты.Счет КАК Счет,
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2 КАК Субконто2,
| СУММА(РегистрУправленческийОбороты.СуммаОборотДт) КАК СуммаОборотДт
|ПОМЕСТИТЬ Затраты
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Обороты(&НачалоМесяца, &КонецМесяца, , Счет =
ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщехозяйственныеРасходы), , , , ) КАК РегистрУправленческийОбороты
|
|СГРУППИРОВАТЬ ПО
| РегистрУправленческийОбороты.Счет,
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РегистрУправленческийОбороты.Счет,
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2,
| СУММА(РегистрУправленческийОбороты.СуммаОборотДт)
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Обороты(&НачалоМесяца, &КонецМесяца, , Счет =
ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщепроизводственныеРасходы), , , , ) КАК РегистрУправленческийОбороты
|
|СГРУППИРОВАТЬ ПО
| РегистрУправленческийОбороты.Счет,
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Затраты.Счет КАК Счет,
| Выпуск.Субконто1 КАК Субконто1,
| Выпуск.Субконто2 КАК Субконто2,
| Выпуск.Субконто3 КАК Субконто3,
| Выпуск.КоличествоКорОборотКт КАК Количество,
| Затраты.СуммаОборотДт КАК Сумма
|ИЗ
| Выпуск КАК Выпуск
| ЛЕВОЕ СОЕДИНЕНИЕ Затраты КАК Затраты
| ПО (ВЫБОР
| КОГДА Затраты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщехозяйственныеРасходы)
| ТОГДА Выпуск.Субконто1 = Затраты.Субконто1
| КОГДА Затраты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОбщепроизводственныеРасходы)
| ТОГДА Выпуск.Субконто1 = Затраты.Субконто1
| И Выпуск.Субконто2 = Затраты.Субконто2
| КОНЕЦ)
|ИТОГИ
| СУММА(Количество)
|ПО
| Счет,
| Субконто1,
| Субконто2”;
Результат = Запрос.Выполнить();
ВыборкаСчет = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСчет.Следующий() Цикл
ВыборкаСубконто1 = ВыборкаСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСубконто1.Следующий() Цикл //подразделения
ВыборкаСубконто2 = ВыборкаСубконто1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаСубконто2.Следующий() Цикл //Заказы
ВыборкаДетальныеЗаписи = ВыборкаСубконто2.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Проводка = Движения.РегистрУправленческий.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.ОсновноеПроизводство;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделения] = ВыборкаДетальныеЗаписи.Субконто1;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Заказы] = ВыборкаДетальныеЗаписи.Субконто2;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Товары] = ВыборкаДетальныеЗаписи.Субконто3;
Проводка.СчетКт = ВыборкаСчет.Счет;
Для каждого СтрокаВидыСубконто Из Проводка.СчетКт.ВидыСубконто Цикл
ВидСубконто = СтрокаВидыСубконто.ВидСубконто;
Проводка.СубконтоКт[ВидСубконто] =
ВыборкаДетальныеЗаписи[“Субконто”+СтрокаВидыСубконто.НомерСтроки];
КонецЦикла;
Если Проводка.СчетКт=ПланыСчетов.Управленческий.ОбщехозяйственныеРасходы тогда
Проводка.Сумма =
ВыборкаДетальныеЗаписи.Сумма*ВыборкаДетальныеЗаписи.Количество/ВыборкаСубконто1.Количество;
ИначеЕсли Проводка.СчетКт=ПланыСчетов.Управленческий.ОбщеПроизводственныеРасходы тогда
Проводка.Сумма =
ВыборкаДетальныеЗаписи.Сумма*ВыборкаДетальныеЗаписи.Количество/ВыборкаСубконто2.Количество;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Закрытие счета 20
Движения.РегистрУправленческий.Записать();
Запрос.Текст =
“ВЫБРАТЬ
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2,
| РегистрУправленческийОбороты.Субконто3,
| СУММА(РегистрУправленческийОбороты.СуммаОборотДт) КАК СуммаОборотДт
|ИЗ
| РегистрБухгалтерии.РегистрУправленческий.Обороты(&НачалоМесяца, &КонецМесяца, , Счет =
ЗНАЧЕНИЕ(ПланСчетов.Управленческий.ОсновноеПроизводство), , , , ) КАК РегистрУправленческийОбороты
|
|СГРУППИРОВАТЬ ПО
| РегистрУправленческийОбороты.Субконто1,
| РегистрУправленческийОбороты.Субконто2,
| РегистрУправленческийОбороты.Субконто3”;
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Проводка = Движения.РегистрУправленческий.Добавить();
Проводка.Период = Дата;
Проводка.СчетДт = ПланыСчетов.Управленческий.ГотоваяПродукция;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Товары] = ВыборкаДетальныеЗаписи.Субконто3;
Проводка.СчетКт = ПланыСчетов.Управленческий.ОсновноеПроизводство;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделения] = ВыборкаДетальныеЗаписи.Субконто1;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Заказы] = ВыборкаДетальныеЗаписи.Субконто2;
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Товары] = ВыборкаДетальныеЗаписи.Субконто3;
Проводка.Сумма = ВыборкаДетальныеЗаписи.СуммаОборотДт;
КонецЦикла;
Движения.РегистрУправленческий.Записать();
Далее рассчитывается себестоимость. При записи суммы учитываем, что “дельта” может получиться отрицательной, если СуммаОборотКт=0 (при продаже с нулевой себестоимостью).
Предлагаю немного подправить текст задания.
1. “цех, который изготовил номенклатуру”. Как-то обозначить, что “цех” – это подразделение. А то я, например, сдуру создал новый справочник “Цеха”. Потом уже посмотрел на проводку и понял, что цех и подразделение – одно и тоже.
2. Ни в задании №15, ни в этом задании не указано, что такое 43 счет.
Александр, спасибо.
Уже исправили.
Не совсем понятно, какой все-таки план-график актуален для нашего потока (от 25 апреля) – старый или тот, что в конфигурации 1.1.21.1 ?
Новую конфигурацию я установил, указал начало курса и получил “новый” план-график, но задания, кажется продолжают выкладываться по “старому”.
Для Вашего потока действует старый план-график.
Однако дадим дополнительное время для завершения работы с материалами курса.