Добрый день. Создали внешнюю обработку, которая ко кнопке создает типовой документ Распределение расходов на партии производства с определенным образом заполненной табличной частью. Суть этого документа распределить вручную статью расхода, которая ранее вводится документом Поступление услуг и проч активов. Проблема в том, что такое Распределение не распределяется, а висит в статусе Готов к распределению, даже если добавить его в задание к расчету себестоимости вручную.
Если же Распределение создается типовым методом ( в процессе закрытия месяца), то такое распределение имеет статус распределено и верно включается в себестоимость.
Проверял через консоль документ созданный нашей обработкой и документ созданный типовой обработкой, реквизиты одинаковые.
Подскажите кто знает как заставить "Распределение" распределятся?
Если же Распределение создается типовым методом ( в процессе закрытия месяца), то такое распределение имеет статус распределено и верно включается в себестоимость.
Проверял через консоль документ созданный нашей обработкой и документ созданный типовой обработкой, реквизиты одинаковые.
Подскажите кто знает как заставить "Распределение" распределятся?
Прикрепленные файлы:
По теме из базы знаний
- Длительный цикл производства для ERP 2.4
- Порядок отражения постатейных расходов по укрупненным группировкам в ОСВ в 1С:ERP Управление предприятием
- Разница между способами распределения трудозатрат на партию производства в ERP 2.5
- Распределение возвратных отходов в ERP 2.5 в бухгалтерском и оперативном учете. Распределение по нормативам спецификаций
- Распределение расходов с вариантом "При продаже" в ERP 2.5
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Партии те, партии заполняются тоже автоматически. Пробовал заполнять эти партии посредством типового добавления через "Добавить". Все равно такое Распределение не распределяется.
>>Обычно это работает без каких-либо проблем.
В том то и дело, типовое Распределение без проблем, а мы создаем по кнопке типовой документ
>>Обычно это работает без каких-либо проблем.
В том то и дело, типовое Распределение без проблем, а мы создаем по кнопке типовой документ
(8)
Что-то тут не то.
Статус всегда есть.
Если документ распределения не создан, то статус "Требуется", если создан и проведён, но расчёт себестоимости не выполнен, то статус "Готов к распределению". Если расчёт себестоимости выполнен, то статус будет или "Распределено" или "Ошибка распределения".
До никакого статуса нет.
.
Что-то тут не то.
Статус всегда есть.
Если документ распределения не создан, то статус "Требуется", если создан и проведён, но расчёт себестоимости не выполнен, то статус "Готов к распределению". Если расчёт себестоимости выполнен, то статус будет или "Распределено" или "Ошибка распределения".
Т.е.
Документ № 1 создается типовым механизмом ЕРП, нормально потом распределяется
Документ № 2 создается нашей обработкой, имеет такой же состав реквизитов, но не распределяется.
Возможно ли, что проблема в обработке? Типа, надо не просто создать документ Распределение как объект метаданных, а еще с какими-то еще параметрами?
Может быть кто подскажет в каком модуле можно посмотреть принцип создания Распределения и принцип перевода его в статус Распределено?
Документ № 1 создается типовым механизмом ЕРП, нормально потом распределяется
Документ № 2 создается нашей обработкой, имеет такой же состав реквизитов, но не распределяется.
Возможно ли, что проблема в обработке? Типа, надо не просто создать документ Распределение как объект метаданных, а еще с какими-то еще параметрами?
Может быть кто подскажет в каком модуле можно посмотреть принцип создания Распределения и принцип перевода его в статус Распределено?
(20) Значит, как я уже писал, дело в "сусликах" и в вашей обработке.. Обработка создает документ, заполняет его как-то, но видимо, не все поля в шапке и таб. частях заполнены как надо. А на форме документа этого, может быть и не видно.
Автор обработки досягаем?
Автор обработки досягаем?
Суть обработки:
Из документа Поступление услуги прочих активов по кнопке на панели команд запускается эта обработка, которая считает количество продукции как нам нужно (это все верно она делает) а потом создает документ Распределение.
Из документа Поступление услуги прочих активов по кнопке на панели команд запускается эта обработка, которая считает количество продукции как нам нужно (это все верно она делает) а потом создает документ Распределение.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("ПриобретениеУслугПрочихАктивов") Тогда
ПУиПА = Параметры.ПриобретениеУслугПрочихАктивов;
Элементы.ПУиПА.ТолькоПросмотр = Истина;
//Элементы.ПУиПА.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расчитать(Команда)
Если НЕ ЗначениеЗаполнено(Подразделение) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не указано подразделение!";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДатаНачала) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не указано Дата начала!";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДатаОкончания) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не указано Дата окончания!";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
РасчитатьНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасчитатьНаСервере()
ТЗ_Расчета.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВыпускПродукцииОбороты.Регистратор КАК Регистратор,
| ВыпускПродукцииОбороты.Подразделение КАК Подразделение,
| ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(ВыпускПродукцииОбороты.КоличествоОборот) КАК Количество
|ПОМЕСТИТЬ ВТ_ВыпускПродукции
|ИЗ
| РегистрНакопления.ВыпускПродукции.Обороты(
| &ДатаНачала,
| &ДатаОкончания,
| Регистратор,
| Подразделение = &Подразделение
| И НЕ АналитикаУчетаНоменклатуры.Номенклатура В (&ИсключитьНоменклатуру)) КАК ВыпускПродукцииОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыпускПродукцииОбороты.Регистратор,
| ВыпускПродукцииОбороты.Подразделение,
| ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ВТ_ВыпускПродукции.Регистратор КАК Этап,
| ВТ_ВыпускПродукции.Подразделение КАК Подразделение,
| ВТ_ВыпускПродукции.Номенклатура КАК Номенклатура,
| ВТ_ВыпускПродукции.Количество КАК Количество,
| ЕСТЬNULL(рс_ПоказателиДляРасчетаСебестоимостиСрезПоследних.Показатель, 0) КАК Показатель,
| ВТ_ВыпускПродукции.Количество * ЕСТЬNULL(рс_ПоказателиДляРасчетаСебестоимостиСрезПоследних.Показатель, 0) КАК Сумма
|ИЗ
| ВТ_ВыпускПродукции КАК ВТ_ВыпускПродукции
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.рс_ПоказателиДляРасчетаСебестоимости.СрезПоследних(&ДатаОкончания, ) КАК рс_ПоказателиДляРасчетаСебестоимостиСрезПоследних
| ПО ВТ_ВыпускПродукции.Номенклатура = рс_ПоказателиДляРасчетаСебестоимостиСрезПоследних.Номенклатура";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запрос.УстановитьПараметр("ИсключитьНоменклатуру", ИсключитьНоменклатуру.ВыгрузитьЗначения());
Запрос.УстановитьПараметр("Подразделение", Подразделение);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДЗ = РезультатЗапроса.Выбрать();
НомерСтроки = 1;
Пока ВыборкаДЗ.Следующий() Цикл
НоваяСтрока = ТЗ_Расчета.Добавить();
НоваяСтрока.НомерСтроки = НомерСтроки;
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДЗ);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПеренестиВПУиПА(Команда)
Если НЕ ЗначениеЗаполнено(ПУиПА) Тогда
Закрыть();
КонецЕсли;
Если Элементы.ПУиПА.ТолькоПросмотр Тогда
Закрыть(ПоместитьРезультатВоВременноеХранилище());
Иначе
ПеренестиВПУиПАНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПеренестиВПУиПАНаСервере()
СтатьяМотивация = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Мотивация");
СуммаРасходов = ТЗ_Расчета.Итог("Сумма");
ОбъектДокумент = ПУиПА.ПолучитьОбъект();
НоваяСтрока = ОбъектДокумент.Расходы.Добавить();
НоваяСтрока.Содержание = СтатьяМотивация;
НоваяСтрока.Количество = 1;
НоваяСтрока.Цена = СуммаРасходов;
НоваяСтрока.Сумма = СуммаРасходов;
НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
НоваяСтрока.СуммаНДС = 0;
НоваяСтрока.СуммаСНДС = СуммаРасходов;
НоваяСтрока.СуммаСНДС = СуммаРасходов;
НоваяСтрока.Подразделение = Подразделение;
НоваяСтрока.СтатьяРасходов = СтатьяМотивация;
Попытка
ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщение.Сообщить();
КонецПопытки;
КонецПроцедуры
&НаСервере
Функция ПоместитьРезультатВоВременноеХранилище()
ТЗ_ТМП = ТЗ_Расчета.Выгрузить();
ТЗ_ТМП.Свернуть("Подразделение", "Сумма");
ПараметрыЗакрытия = Новый Структура("АдресВоВременномХранилище", ПоместитьВоВременноеХранилище(ТЗ_ТМП));
Возврат ПараметрыЗакрытия;
КонецФункции
&НаКлиенте
Процедура СоздатьРаспределение(Команда)
Если НЕ ЗначениеЗаполнено(ПУиПА) Тогда
Возврат;
КонецЕсли;
СоздатьРаспределениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура СоздатьРаспределениеНаСервере()
Значения_ПУиПА = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПУиПА, "Организация, Подразделение");
СтатьяМотивация = ПланыВидовХарактеристик.СтатьиРасходов.НайтиПоНаименованию("Мотивация");
СтатьяМатериал = Справочники.СтатьиКалькуляции.НайтиПоНаименованию("Материал для производства");
НовыйДокумент = Документы.РаспределениеПрочихЗатрат.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Организация = Значения_ПУиПА.Организация;
НовыйДокумент.Подразделение = Подразделение;
НовыйДокумент.СтатьяРасходов = СтатьяМотивация;
НовыйДокумент.Ответственный = Пользователи.ТекущийПользователь();
НовыйДокумент.РаспределятьПоПартиям = Истина;
НовыйДокумент.РаспределятьПоПодразделениям = Ложь;
НовыйДокумент.РаспределятьНаСтатьи = Ложь;
НовыйДокумент.ОставитьВНЗП = Ложь;
НовыйДокумент.ПартииУказаныВручную = Истина;
НовыйДокумент.ПодразделенияУказаныВручную = Ложь;
НовыйДокумент.НаВыпускТекущегоМесяца = Ложь;
НовыйДокумент.РегламентированныйУчет = Ложь;
НовыйДокумент.УправленческийУчет = Истина;
НовыйДокумент.НазначениеНастройкиРаспределения = Перечисления.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства;
СуммаДолей = 0;
ПоляПартии = Новый Структура("Документ, Организация, Номенклатура, ГруппировкаЗатрат, ГруппаЗатрат, ВидДеятельностиНДС, ОсновноеИзделиеНоменклатура");
ПоляПартии.Организация = Значения_ПУиПА.Организация;
ПоляПартии.ГруппировкаЗатрат = Перечисления.ГруппировкиЗатратВЗаказеПереработчику.ПоПродукции;
ПоляПартии.ВидДеятельностиНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
Для каждого Строка Из ТЗ_Расчета Цикл
НоваяСтрока = НовыйДокумент.ПартииПроизводства.Добавить();
ПоляПартии.Документ = Строка.Этап;
ПоляПартии.Номенклатура = Строка.Номенклатура;
ПоляПартии.ГруппаЗатрат = Строка.Номенклатура;
ПоляПартии.ОсновноеИзделиеНоменклатура = Строка.Номенклатура;
НоваяСтрока.ПартияПроизводства = Справочники.ПартииПроизводства.ПолучитьПартиюПроизводства(ПоляПартии, Истина, Истина);
НоваяСтрока.Подразделение = Строка.Подразделение;
НоваяСтрока.Этап = Строка.Этап;
НоваяСтрока.СтатьяКалькуляции = СтатьяМатериал;
НоваяСтрока.ДоляСтоимости = Строка.Сумма;
СуммаДолей = СуммаДолей + Строка.Сумма;
КонецЦикла;
НовыйДокумент.ДоляСтоимостиНаПроизводство = СуммаДолей;
НовыйДокумент.ВсегоДолейСтоимости = СуммаДолей;
Попытка
НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НовыйДокумент;
Сообщение.Сообщить();
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщение.Сообщить();
КонецПопытки;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот