Имя: Пароль:
1C
1С v8
v8: ЗУП: Закрытие счета 20 ☑
0 rodzin
 
21.06.12
✎
10:18
Добрый день. При закрытии июня выдает ощибку:
Значение не является значением обьектного типа (Склад).
Предыдущие месяцы закрыл. Помогите программист в отпуске :).
Вот модуль Документа:
Перем мУдалятьДвижения Экспорт;
Перем мУчетнаяПолитика; // Хранит параметры учетной политики на момент проведения документа
// Наборы движений по регистрам
Перем мДвиженияПартии;                     // По регистру партии товаров на складе
Перем мДвиженияПродажиСебестоимость;     // По регитсру "Продажи себестоимость" упр.
Перем мДвиженияБазаРаспределенияЗатрат;  // По регистру сведений "База распределения затрат" (по всем видам учета)
Перем мОперация;                         // По регистру бухгалтерии "Хозрасчетный"
Перем мСуффиксИмениРегистра;             // Суффикс имени регистра. для бух. учета = "БухгалтерскийУчет"
                                        // для упр. учета = "", для налог. учете = "НалоговыйУчет"
Перем мСуффиксСчета;                     // Суффикс счета. для бух. учета = "СчетУчетаБУ"
                                        // для нал. учета = "СчетУчетаНУ"
                                       
// Процедура проверяет правильность заполнения реквизитов документа
//
Процедура ПроверкаРеквизитов(Отказ, Заголовок, СтруктураШапкиДокумента) Экспорт
   
   РеквизитыШапки = "Организация";
   
   ЗаполнениеДокументов.ПроверитьЗаполнениеШапкиДокумента(ЭтотОбъект, Новый Структура(РеквизитыШапки), Отказ, Заголовок);
   
КонецПроцедуры // ПроверкаРеквизитов()

// Функция получения признака использования расширенной аналитики учета.
//
// Параметры:
//    ПолучитьНовоеЗначение - Булево - признак необходимости получения нового значения параметра
//
// Возвращаемое значение:
//    Булево - признак использования расширенной аналитики учета
//
Функция ПолучитьИспользованиеРасширеннойАналитики(
   ПолучитьНовоеЗначение = Ложь
   ) Экспорт
   
   Перем ИспользоватьРасширеннуюАналитику;
   
   Если ПолучитьНовоеЗначение
    ИЛИ Не ДополнительныеСвойства.Свойство("ИспользоватьРасширеннуюАналитику", ИспользоватьРасширеннуюАналитику)
   Тогда
       ИспользоватьРасширеннуюАналитику = глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат")
           И (глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат") <= Дата);
       ДополнительныеСвойства.Вставить("ИспользоватьРасширеннуюАналитику", ИспользоватьРасширеннуюАналитику);
   КонецЕсли;
   
   Возврат ИспользоватьРасширеннуюАналитику;
       
КонецФункции // ПолучитьИспользованиеРасширеннойАналитики()

// Функция получения режима использования расширенной аналитики учета.
//
// Параметры:
//    ПолучитьНовоеЗначение - Булево - признак необходимости получения нового значения параметра
//
// Возвращаемое значение:
//    Булево - признак использования расширенной аналитики учета
//
Функция ПолучитьРежимИспользованияРасширеннойАналитики(
   ПолучитьНовоеЗначение = Ложь
   ) Экспорт
   
   Перем РежимИспользованияРасширеннойАналитики;
   
   Если ПолучитьНовоеЗначение
    ИЛИ Не ДополнительныеСвойства.Свойство("РежимИспользованияРасширеннойАналитики", РежимИспользованияРасширеннойАналитики)
   Тогда
       РежимИспользованияРасширеннойАналитики = глЗначениеПеременной("РежимИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат");
       ДополнительныеСвойства.Вставить("РежимИспользованияРасширеннойАналитики", РежимИспользованияРасширеннойАналитики);
   КонецЕсли;
   
   Возврат РежимИспользованияРасширеннойАналитики;
       
КонецФункции // ПолучитьРежимИспользованияРасширеннойАналитики()

///////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ ПРОВЕДЕНИЯ ДОКУМЕНТА

// Процедура формирует структуру шапки документа и дополнительных полей.
//
// Параметры
//  СтруктураШапкиДокумента – Структура - Реквизиты документа "Расчет себестоимости"
//    Отказ - Булево - Признак отказа от проведения документа
//    Заголовок - Строка - Текст представления документа
//
//
Процедура ПодготовитьСтруктуруШапкиДокумента(
   СтруктураШапкиДокумента,
   Отказ,
   Заголовок
   )
   
   // Период построения запросов
   мНачГраница = Новый Граница( НачалоМесяца(Дата), ВидГраницы.Включая);
   мКонГраница = Новый Граница( КонецМесяца(Дата), ВидГраницы.Включая);
   мНачДата    = НачалоМесяца(Дата);
   мКонДата    = КонецМесяца(Дата);

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

   ПоддержкаПБУ18 = мУчетнаяПолитика.ПоддержкаПБУ18;
   
   мВидыПодразделенийДляРасчетаПоПеределам = Новый Массив;
   мВидыПодразделенийДляРасчетаПоПодразделениям = Новый Массив;
   Если мРасчетПоПеределамВспомогательноеПроизводство Тогда
       мВидыПодразделенийДляРасчетаПоПеределам.Добавить(Перечисления.ВидыПодразделений.ВспомогательноеПроизводство);
   Иначе
       мВидыПодразделенийДляРасчетаПоПодразделениям.Добавить(Перечисления.ВидыПодразделений.ВспомогательноеПроизводство);
   КонецЕсли;
   Если мРасчетПоПеределамОсновноеПроизводство Тогда
       мВидыПодразделенийДляРасчетаПоПеределам.Добавить(Перечисления.ВидыПодразделений.ОсновноеПроизводство);
   Иначе
       мВидыПодразделенийДляРасчетаПоПодразделениям.Добавить(Перечисления.ВидыПодразделений.ОсновноеПроизводство);
   КонецЕсли;
   
   УчетПоСредней = (мУчетнаяПолитика.СпособОценкиМПЗ = Перечисления.СпособыОценки.ПоСредней);
   СтруктураШапкиДокумента.Вставить("УчетПоСредней", УчетПоСредней);
   СтруктураШапкиДокумента.Вставить("Дата",                 КонецМесяца(Дата));
   СтруктураШапкиДокумента.Вставить("Период",               КонецМесяца(Дата));
   СтруктураШапкиДокумента.Вставить("УчетнаяПолитика",      мУчетнаяПолитика);
   СтруктураШапкиДокумента.Вставить("ТабПеределовОбщая",    Неопределено);
   СтруктураШапкиДокумента.Вставить("СуффиксИмениРегистра", мСуффиксИмениРегистра);
   СтруктураШапкиДокумента.Вставить("ОтражатьВУправленческомУчете", Ложь);
   СтруктураШапкиДокумента.Вставить("ОтражатьВБухгалтерскомУчете",  Истина);
   СтруктураШапкиДокумента.Вставить("ОтражатьВНалоговомУчете",      Ложь);
   СтруктураШапкиДокумента.Вставить("ОтражатьВМеждународномУчете",  Ложь);
   СтруктураШапкиДокумента.Вставить("РасчетПоПеределамОсновноеПроизводство",        мРасчетПоПеределамОсновноеПроизводство);
   СтруктураШапкиДокумента.Вставить("РасчетПоПеределамВспомогательноеПроизводство", мРасчетПоПеределамВспомогательноеПроизводство);
   СтруктураШапкиДокумента.Вставить("ВариантУчетаВыпускаГотовойПродукции", ВариантУчетаВыпускаГотовойПродукции);
   
   СтруктураШапкиДокумента.Вставить("ВидыПодразделенийДляРасчетаПоПеределам",         мВидыПодразделенийДляРасчетаПоПеределам);
   СтруктураШапкиДокумента.Вставить("ВидыПодразделенийДляРасчетаПоПодразделениям",  мВидыПодразделенийДляРасчетаПоПодразделениям);
   СтруктураШапкиДокумента.Вставить("мВидыПодразделенийДляРасчетаПоПеределам",     мВидыПодразделенийДляРасчетаПоПеределам);
   СтруктураШапкиДокумента.Вставить("мВидыПодразделенийДляРасчетаПоПодразделениям", мВидыПодразделенийДляРасчетаПоПодразделениям);
   
   СтруктураШапкиДокумента.Вставить("ДетализацияПоФиксированнойСтатьеЗатрат",  ДетализацияПоФиксированнойСтатьеЗатрат);
   Если ДетализацияПоФиксированнойСтатьеЗатрат Тогда
       СтруктураШапкиДокумента.Вставить("СтатьяОбщепроизводственныеРасходы", СтатьяОбщепроизводственныеРасходы);
       СтруктураШапкиДокумента.Вставить("СтатьяОбщехозяйственныеРасходы",      СтатьяОбщехозяйственныеРасходы);
       СтруктураШапкиДокумента.Вставить("СтатьяБракВПроизводстве",          СтатьяБракВПроизводстве);
   Иначе
       СтруктураШапкиДокумента.Вставить("СтатьяОбщепроизводственныеРасходы");
       СтруктураШапкиДокумента.Вставить("СтатьяОбщехозяйственныеРасходы");
       СтруктураШапкиДокумента.Вставить("СтатьяБракВПроизводстве");
   КонецЕсли;
   
   СтруктураШапкиДокумента.Вставить("ИтерационныйРасчетЗатратВстречногоВыпуска", Ложь);
   
   СтруктураШапкиДокумента.Вставить("БезСтатейЗатрат",  Истина);
   
   СтруктураШапкиДокумента.Вставить("мСуффиксИмениРегистра", мСуффиксИмениРегистра);
   СтруктураШапкиДокумента.Вставить("мНачГраница", мНачГраница);
   СтруктураШапкиДокумента.Вставить("мКонГраница", мКонГраница);
   СтруктураШапкиДокумента.Вставить("мНачДата",      мНачДата);
   СтруктураШапкиДокумента.Вставить("мКонДата",      мКонДата);
   СтруктураШапкиДокумента.Вставить("ПоддержкаПБУ18", ПоддержкаПБУ18);
   СтруктураШапкиДокумента.Вставить("ДиректКостинг", мУчетнаяПолитика.ДиректКостинг);
   СтруктураШапкиДокумента.Вставить("ВедениеУчетаПоПроектам", УправлениеПроектами.ВедениеУчетаПоПроектам());
   СтруктураШапкиДокумента.Вставить("ВедениеУчетаЗатратПоПроектам", УправлениеПроектами.ВедениеУчетаЗатратПоПроектам());

   СпособыВеденияПартионногоУчетаПоОрганизациям = УправлениеЗапасамиПартионныйУчет.ПодготовитьСоответствиеСпособыВеденияПартионногоУчетаПоОрганизациям(СтруктураШапкиДокумента);
   СтруктураШапкиДокумента.Вставить("СпособыВеденияПартионногоУчетаПоОрганизациям", СпособыВеденияПартионногоУчетаПоОрганизациям);

   ВидОтраженияВУчете = ПроцедурыРасчетаСебестоимостиВыпуска.ПолучитьВидОтраженияВУчете(СтруктураШапкиДокумента);
   СтруктураШапкиДокумента.Вставить("ВидОтраженияВУчете", ВидОтраженияВУчете);
   
   ИспользоватьРасширеннуюАналитику = ПолучитьИспользованиеРасширеннойАналитики();
   СтруктураШапкиДокумента.Вставить("ИспользоватьРасширеннуюАналитику", ИспользоватьРасширеннуюАналитику);
   СтруктураШапкиДокумента.Вставить("ОтражатьВНалоговомУчете", Ложь);
   
   РежимИспользованияРасширеннойАналитики = ПолучитьРежимИспользованияРасширеннойАналитики();
   СтруктураШапкиДокумента.Вставить("ОтражатьЗатратыВУпрУчете", (РежимИспользованияРасширеннойАналитики = Перечисления.РежимыИспользованияРасширеннойАналитики.УправленческийИРегламентированныйУчет));

   СтруктураШапкиДокумента.Вставить("ОтноситьТЗРНаОтдельныйСчет", мУчетнаяПолитика.ВидУчетаТЗР = Перечисления.ВариантыУчетаТЗР.ОтнесениеНаОтдельныйСчет);
   
   СтруктураШапкиДокумента.Вставить("ПростоеРаспределение", УчетЗатрат.ИспользоватьПростоеРаспределение(НастройкаЗакрытияМесяца));
   
   // По умолчанию "отладочный режим" выключен.
   //
   // Для его включения необходимо в режиме отладки выполнить функцию
   // РасширеннаяАналитикаУчета.ВключитьОтладочныйРежим().
   //
   // Включение "отладочного режима" позволит просматривать данные временных таблиц -
   // см. РасширеннаяАналитика.ПоказатьВременнуюТаблицу()
   РасширеннаяАналитикаУчета.ВключитьОтладочныйРежим(СтруктураШапкиДокумента, Истина);
   
КонецПроцедуры // ПодготовитьСтруктуруШапкиДокумента()

// Функция формирует структуру таблиц движений регистров.
//
// Параметры
//  СтруктураШапкиДокумента – Структура - Реквизиты документа "Расчет себестоимости"
//
// Возвращаемое значение:
//   Структура – Структура таблиц движений регистров
//
Функция ПолучитьСтруктуруТаблицДвиженийРегистров(
   СтруктураШапкиДокумента
   )
   
   // Наборы движений по регистрам
   Если СтруктураШапкиДокумента.ОтражатьВУправленческомУчете Тогда
       
       мСуффиксИмениРегистра             = "";
       
       мДвиженияПартии                      = Движения.ПартииТоваровНаСкладах;
       мДвиженияПродажиСебестоимость      = Движения.ПродажиСебестоимость;
       мДвиженияБазаРаспределенияЗатрат  = Движения.БазаРаспределенияЗатрат;
       
   ИначеЕсли СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете Тогда
       
       мСуффиксИмениРегистра             = "БухгалтерскийУчет";
       
       мДвиженияПартии                      = Движения.ПартииТоваровНаСкладахБухгалтерскийУчет;
       мДвиженияБазаРаспределенияЗатрат  = Движения.БазаРаспределенияЗатратБухгалтерскийУчет;
       
       мОперация                         = Движения.Хозрасчетный;
       мСуффиксСчета                     = "СчетУчетаБУ";
       
   ИначеЕсли СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда
       
       мСуффиксИмениРегистра             = "НалоговыйУчет";
       
       мДвиженияПартии                      = Движения.ПартииТоваровНаСкладахНалоговыйУчет;
       мДвиженияБазаРаспределенияЗатрат  = Движения.БазаРаспределенияЗатратНалоговыйУчет;
       
       мОперация                         = Движения.Налоговый;
       мСуффиксСчета                     = "СчетУчетаНУ";
       
   КонецЕсли;
   
   мТаблицаДвиженийПартии            = мДвиженияПартии.Выгрузить();
   
   //мТаблицаДвиженийПродажиСебестоимость = мДвиженияПродажиСебестоимость.Выгрузить();
   
   СтруктураТаблицДвижений = Новый Структура;
   СтруктураТаблицДвижений.Вставить("ТаблицаДвиженийПартии",            мТаблицаДвиженийПартии);
   //СтруктураТаблицДвижений.Вставить("ТаблицаДвиженийПродажиСебестоимость", мТаблицаДвиженийПродажиСебестоимость);
   
   Возврат СтруктураТаблицДвижений;
   
КонецФункции // ПолучитьСтруктуруТаблицДвиженийРегистров()

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   
   ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект);
   
КонецПроцедуры

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   
   Если мУдалятьДвижения Тогда
       ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ);
   КонецЕсли;
   
   ИспользоватьРасширеннуюАналитику = ПолучитьИспользованиеРасширеннойАналитики();    
   
   Если НЕ ИспользоватьРасширеннуюАналитику Тогда
       ОбщегоНазначения.СообщитьОбОшибке("Документ можно проводить только если используется расширенная аналитика учета затрат",Отказ);
       Возврат;
   КонецЕсли;    
   
   
   // Сформируем структуру реквизитов шапки документа
   СтруктураШапкиДокумента = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);
   
   Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
   
   ПроверкаРеквизитов(Отказ, Заголовок, СтруктураШапкиДокумента);
   
   мУчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(КонецМесяца(Дата), Организация,истина);
   Если НЕ ЗначениеЗаполнено(мУчетнаяПолитика) Тогда
       Отказ = Истина;
   КонецЕсли;
   
   Если Отказ Тогда
       Возврат;
   КонецЕсли;
   
   // Добавим дополнительные поля в структуру шапки документа.
   ПодготовитьСтруктуруШапкиДокумента(
       СтруктураШапкиДокумента,
       Отказ,
       Заголовок
       );

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

   Если Отказ Тогда
       Возврат;
   КонецЕсли;
   
   // Выполнение заданных в документе действий (на сервере)
   ПроцедурыРасчетаСебестоимостиРасширеннаяАналитика.ВыполнитьДействияДокумента2(
       СтруктураШапкиДокумента,
       ТаблицаОшибок);
   
   УправлениеЗатратами.ВывестиСообщенияОбОшибках(
       СтруктураШапкиДокумента,
       ТаблицаОшибок,
       "" // Заголовок
   );
   
   Если НЕ Отказ Тогда
       ОбщегоНазначения.Сообщение("Расчет себестоимости завершен.", Перечисления.ВидыСообщений.Раздел);
   КонецЕсли;
   
КонецПроцедуры

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       
   мУдалятьДвижения = НЕ ЭтоНовый();
   
КонецПроцедуры
1 1C-band
 
21.06.12
✎
10:19
жесть
2 Господин ПЖ
 
21.06.12
✎
10:19
бугага
3 Cube
 
21.06.12
✎
10:19
В ЗУПе, да? Точно-точно?))
4 1C-band
 
21.06.12
✎
10:20
(0) Пишите на 1c-band@mail.ru , от 1000 руб. за час.
5 rodzin
 
21.06.12
✎
10:20
Комплексная автоматизация 1.1.21.1. А в чем жесть?
6 Cube
 
21.06.12
✎
10:20
"программист в отпуске"
Походу, после того, как его попросили закрытие месяца в ЗУПе написать, он свалил подальше от того места))))))
7 rodzin
 
21.06.12
✎
10:22
Я админ на фирме человек (программист) никуда не свалил, просто не хочется дергать вот и все на 7 я программировал лет 5 назад, в восьмерке я ноль. Думал может подскажите что исправить чтоб бухгалтерия отстала :).
8 чувак
 
21.06.12
✎
10:24
(7) Ты узнай в ошибке номер строки ошибки и в каком модуле это происходить.
9 rodzin
 
21.06.12
✎
10:25
Это все что она выдает, внизу не указывается номер строки, хотя сейчас подойду к бухгалтерам посмотрю точнее.
10 rodzin
 
21.06.12
✎
10:27
Нашел :).
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПроцедурыРасчетаСебестоимостиРасширеннаяАналитика.Модуль(1968)}: Значение не является значением объектного типа (Склад)
11 Cube
 
21.06.12
✎
10:28
(10) Звони программисту... :)
12 чувак
 
21.06.12
✎
10:30
(10) Теперь заходи в конфу, найди эту строку, установи туда точку остановки, запусти предприятие в режие отладки, потом на этой точке отладка остановиться и дальше можешь анализировать этот реквизит
13 Пеппи
 
21.06.12
✎
10:31
да где то склад не заполнен вот и ругается
14 rodzin
 
21.06.12
✎
10:31
Да фиг с ними с бухгалтерами, сам знаю как прекрасно когда в отпуске кто то начинает звонить и кричать что упал сервер и т.д..... и ты матерясь по удалёнке из отеля пытаешся что то сделать :) вместо пива, пляжа и т.д. Подождут..
15 rodzin
 
21.06.12
✎
10:31
чувак
Спасибо попробую.
16 rodzin
 
21.06.12
✎
11:07
НаборПроводок.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = НайденнаяСтрока.Склад;

Вот на эту строку ругается в Процедуре:
Процедура КорректировкаУчетнойСтоимостиВыпускаПродукции2(
   СтруктураШапкиДокумента,
   МенеджерВременныхТаблиц,
   СтруктураНаборыЗаписей
   )
   
   ЗапросСчет20 = Новый Запрос();
   ЗапросСчет43 = Новый Запрос();
       
   АналитикаРасчетов20 = новый Массив();
   АналитикаРасчетов20.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения);
   АналитикаРасчетов20.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);
   
   ЗапросСчет20.Текст = "ВЫБРАТЬ
                               |    ВЫБОР
                               |        КОГДА (ХозрасчетныйОборотыДтКт.СубконтоДт1) ЕСТЬ NULL ТОГДА
                               |            ХозрасчетныйОборотыДтКт2.СубконтоКт1
                               |        ИНАЧЕ
                               |            ХозрасчетныйОборотыДтКт.СубконтоДт1
                               |    КОНЕЦ КАК Подразделение,
                               |    ВЫБОР
                               |        КОГДА (ХозрасчетныйОборотыДтКт.СубконтоДт2) ЕСТЬ NULL ТОГДА
                               |            ХозрасчетныйОборотыДтКт2.СубконтоКт2
                               |        ИНАЧЕ
                               |            ХозрасчетныйОборотыДтКт.СубконтоДт2
                               |    КОНЕЦ КАК НоменклатурнаяГруппа,
                               |    ВЫБОР
                               |        КОГДА (ХозрасчетныйОборотыДтКт.СуммаОборот) ЕСТЬ NULL ТОГДА
                               |            0
                               |        ИНАЧЕ
                               |            ХозрасчетныйОборотыДтКт.СуммаОборот
                               |    КОНЕЦ КАК СуммаДт,
                               |    ВЫБОР
                               |        КОГДА (ХозрасчетныйОборотыДтКт2.СуммаОборот) ЕСТЬ NULL ТОГДА
                               |            0
                               |        ИНАЧЕ
                               |            ХозрасчетныйОборотыДтКт2.СуммаОборот
                               |    КОНЕЦ КАК СуммаКт
                               |ИЗ
                               |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, Месяц, СчетДт В (&ВыбСчетДт), &АналитикаРасчетов, , , Организация = &ВыбОрганизация) КАК ХозрасчетныйОборотыДтКт
                               |
                               |    ПОЛНОЕ СОЕДИНЕНИЕ
                               |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, Месяц, , , СчетКт В (&ВыбСчетДт), &АналитикаРасчетов, Организация = &ВыбОрганизация) КАК ХозрасчетныйОборотыДтКт2
                               |    ПО ХозрасчетныйОборотыДтКт.СубконтоДт1 = ХозрасчетныйОборотыДтКт2.СубконтоКт1 И ХозрасчетныйОборотыДтКт.СубконтоДт2 = ХозрасчетныйОборотыДтКт2.СубконтоКт2";
   
   ЗапросСчет20.УстановитьПараметр("Дата1", СтруктураШапкиДокумента.мНачДата);
   ЗапросСчет20.УстановитьПараметр("Дата2", СтруктураШапкиДокумента.мКонДата);
   ЗапросСчет20.УстановитьПараметр("ВыбСчетДт", ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД);
   ЗапросСчет20.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов20);
   ЗапросСчет20.УстановитьПараметр("ВыбОрганизация", СтруктураШапкиДокумента.Организация);
   
   ЗапросСчет43.Текст = "ВЫБРАТЬ
   |    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Номенклатура,
   |    ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК Склад,
   |    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаДт
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Дата1, &Дата2, Месяц, СчетДт В (&ВыбСчетДт), &АналитикаРасчетов, , , Организация = &ВыбОрганизация) КАК ХозрасчетныйОборотыДтКт";
   
   АналитикаРасчетов43 = новый Массив();
   АналитикаРасчетов43.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
   АналитикаРасчетов43.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);

   ЗапросСчет43.УстановитьПараметр("Дата1", СтруктураШапкиДокумента.мНачДата);
   ЗапросСчет43.УстановитьПараметр("Дата2", СтруктураШапкиДокумента.мКонДата);
   ЗапросСчет43.УстановитьПараметр("ВыбСчетДт", ПланыСчетов.Хозрасчетный.ГотоваяПродукция);
   ЗапросСчет43.УстановитьПараметр("АналитикаРасчетов", АналитикаРасчетов43);
   ЗапросСчет43.УстановитьПараметр("ВыбОрганизация", СтруктураШапкиДокумента.Организация);
   
   РезультатЗапроса20 = ЗапросСчет20.Выполнить();
   РезультатЗапроса43 = ЗапросСчет43.Выполнить().Выгрузить();

   Если РезультатЗапроса20.Пустой() Тогда
       Возврат;
   КонецЕсли;
   
   ЗапросАналитикаВидаУчета = Новый Запрос();
   ЗапросАналитикаВидаУчета.Текст = "ВЫБРАТЬ
   |    АналитикаВидаУчета.Ссылка,
   |    АналитикаВидаУчета.Организация,
   |    АналитикаВидаУчета.РазделУчета,
   |    АналитикаВидаУчета.Подразделение,
   |    АналитикаВидаУчета.ПодразделениеОрганизации,
   |    АналитикаВидаУчета.Склад
   |ИЗ
   |    РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчета
   |ГДЕ
   |    АналитикаВидаУчета.Склад = &ВыбСклад
   |    И АналитикаВидаУчета.Организация = &ВыбОрганизация
   |    И АналитикаВидаУчета.РазделУчета = &ВыбРаздел
   |    И АналитикаВидаУчета.СчетУчета = &ВыбСчетУчета
   |    И АналитикаВидаУчета.СчетУчетаНУ = &ВыбСчетУчетаНУ";
   ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбРаздел", Перечисления.РазделыУчета.МПЗ);
   ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбСчетУчета", ПланыСчетов.Хозрасчетный.ГотоваяПродукция);
   ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбСчетУчетаНУ", ПланыСчетов.Налоговый.ГотоваяПродукция);
   ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбОрганизация", СтруктураШапкиДокумента.Организация);

   ЗапросАналитикаРаспределенияЗатрат = Новый Запрос();
   ЗапросАналитикаРаспределенияЗатрат.Текст = "ВЫБРАТЬ
                                              |    АналитикаУчетаЗатрат.Затрата,
                                              |    АналитикаУчетаЗатрат.Ссылка
                                              |ИЗ
                                              |    РегистрСведений.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат
                                              |ГДЕ
                                              |    АналитикаУчетаЗатрат.Затрата = &ВыбЗатрата";
   ЗапросНоменклатура = Новый Запрос();
   ЗапросНоменклатура.Текст = "ВЫБРАТЬ
                              |    Номенклатура.Ссылка
                              |ИЗ
                              |    Справочник.Номенклатура КАК Номенклатура
                              |ГДЕ
                              |    Номенклатура.НоменклатурнаяГруппа = &ВыбНоменклатурнаяГруппа";

                             
   АналитикаРаспределенияЗатрат = Неопределено;
   АналитикаУчетаПартий = Неопределено;
   ВыборкаАналитика = РегистрыСведений.АналитикаУчетаПартий.Выбрать();
   Пока ВыборкаАналитика.Следующий() Цикл
       Если ВыборкаАналитика.Ссылка = Справочники.КлючиАналитикиУчетаПартий.НайтиПоНаименованию("") Тогда
           АналитикаУчетаПартий = ВыборкаАналитика.Ссылка;
           Прервать;
       КонецЕсли;
   КонецЦикла;
   ВыборкаАналитика = РегистрыСведений.АналитикаРаспределенияЗатрат.Выбрать();
   Пока ВыборкаАналитика.Следующий() Цикл
       Если ВыборкаАналитика.Ссылка = Справочники.КлючиАналитикиРаспределенияЗатрат.НайтиПоНаименованию("") Тогда
           АналитикаРаспределенияЗатрат = ВыборкаАналитика.Ссылка;
           Прервать;
       КонецЕсли;
   КонецЦикла;
                             
   Выборка = РезультатЗапроса20.Выбрать();
   Пока Выборка.Следующий() Цикл
       
       ЗапросНоменклатура.УстановитьПараметр("ВыбНоменклатурнаяГруппа", Выборка.НоменклатурнаяГруппа);
       ВыбНоменклатура = ЗапросНоменклатура.Выполнить().Выбрать();
       Если ВыбНоменклатура.Количество() > 1 Тогда
           Пока ВыбНоменклатура.Следующий() Цикл
               ЗапросАналитикаРаспределенияЗатрат.УстановитьПараметр("ВыбЗатрата", ВыбНоменклатура.Ссылка);
               РезультатАналитики = ЗапросАналитикаРаспределенияЗатрат.Выполнить().Выбрать();
               Если РезультатАналитики.Следующий() Тогда
                   АналитикаУчетаЗатрат = РезультатАналитики.Ссылка;
               Иначе
                   АналитикаУчетаЗатрат = Неопределено;
               КонецЕсли;
               НайденнаяСтрока = РезультатЗапроса43.Найти(ВыбНоменклатура.Ссылка, "Номенклатура");
               Если НайденнаяСтрока <> Неопределено Тогда
                   ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбСклад", НайденнаяСтрока.Склад);
                   РезультатАналитики = ЗапросАналитикаВидаУчета.Выполнить().Выбрать();
                   Если РезультатАналитики.Следующий() Тогда
                       АналитикаВидаУчета = РезультатАналитики.Ссылка;
                   Иначе
                       АналитикаВидаУчета = Неопределено;
                   КонецЕсли;
                   Прервать;
               Иначе
                   АналитикаВидаУчета = Неопределено;
               КонецЕсли;
           КонецЦикла;
       Иначе
           Если ВыбНоменклатура.Следующий() Тогда
               ЗапросАналитикаРаспределенияЗатрат.УстановитьПараметр("ВыбЗатрата", ВыбНоменклатура.Ссылка);
               РезультатАналитики = ЗапросАналитикаРаспределенияЗатрат.Выполнить().Выбрать();
               Если РезультатАналитики.Следующий() Тогда
                   АналитикаУчетаЗатрат = РезультатАналитики.Ссылка;
               Иначе
                   АналитикаУчетаЗатрат = Неопределено;
               КонецЕсли;
           Иначе
               АналитикаУчетаЗатрат = Неопределено;
           КонецЕсли;
           НайденнаяСтрока = РезультатЗапроса43.Найти(ВыбНоменклатура.Ссылка, "Номенклатура");
           Если НайденнаяСтрока <> Неопределено Тогда
               ЗапросАналитикаВидаУчета.УстановитьПараметр("ВыбСклад", НайденнаяСтрока.Склад);
               РезультатАналитики = ЗапросАналитикаВидаУчета.Выполнить().Выбрать();
               Если РезультатАналитики.Следующий() Тогда
                   АналитикаВидаУчета = РезультатАналитики.Ссылка;
               Иначе
                   АналитикаВидаУчета = Неопределено;
               КонецЕсли;
           Иначе
               АналитикаВидаУчета = Неопределено;
           КонецЕсли;
       КонецЕсли;
       
       // Движения "Приход" по аналитике выпуска.
       РасширеннаяАналитикаУчета.СформироватьДвиженияПоРегиструУчетЗатрат(
           СтруктураШапкиДокумента,
           АналитикаВидаУчета,
           АналитикаУчетаЗатрат,
           АналитикаУчетаПартий,
           АналитикаРаспределенияЗатрат,
           
           Неопределено, // Выборка.АналитикаВидаУчета,
           Неопределено, // Выборка.АналитикаУчетаЗатрат,
           Неопределено, // Выборка.АналитикаУчетаПартий,
           Неопределено, // Выборка.АналитикаРаспределенияЗатрат,
           
           ВидДвиженияНакопления.Приход,
           Неопределено, // КодОперации
           0, // Количество
           (Выборка.СуммаДт - Выборка.СуммаКт),
           0, // КоличествоНУ
           (Выборка.СуммаДт - Выборка.СуммаКт),
           0, // ПостояннаяРазница,
           СтруктураНаборыЗаписей.УчетЗатрат
       );
       
       НаборПроводок = СтруктураНаборыЗаписей.Хозрасчетный.Добавить();
       //НаборПроводок = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей().Добавить();
       НаборПроводок.Активность = Истина;
       НаборПроводок.Организация = СтруктураШапкиДокумента.Организация;
       НаборПроводок.СчетДт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция;
       НаборПроводок.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ВыбНоменклатура.Ссылка;
       НаборПроводок.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = НайденнаяСтрока.Склад;
       НаборПроводок.СчетКт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД;
       НаборПроводок.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения] = Выборка.Подразделение;
       НаборПроводок.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы] = Выборка.НоменклатурнаяГруппа;
       НаборПроводок.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = Справочники.СтатьиЗатрат.НайтиПоНаименованию(ВыбНоменклатура.Ссылка);
       НаборПроводок.Период = СтруктураШапкиДокумента.мКонДата;
       НаборПроводок.Сумма = (Выборка.СуммаДт - Выборка.СуммаКт);
       
   КонецЦикла;
   
КонецПроцедуры
17 rodzin
 
21.06.12
✎
15:09
А можно удалить тему, нашли выход, спасибо за подсказки дело было не в модуле а в как обычно в оформлении и создании документов :).
Независимо от того, куда вы едете — это в гору и против ветра!