|
Нет движений по регистру при проведении документов обработкой | ☑ | ||
---|---|---|---|---|
0
Сметанин
04.10.13
✎
12:55
|
Всем доброго дня!
Конфа УПП. РАУЗ. Был режим учета затрат регламентированный. Изменил константу обработкой на регламентированный и управленческий. Перепровожу документы чтобы движения отразились по управленческому учету. 1) Типовой обработкой документов и справочников - не помогло. 2) Сам написал обработку перепроведения - то же, перед проведением распровожу доки - толку нет. 3) Скачал обработку для проведения доков по выбранному регистру, выбираю "Управленческий учет затрат" - не помог8ает. При этом если док в пользовательско режиме открыть и провести, то движения делаются. |
|||
1
ДенисЧ
04.10.13
✎
12:56
|
А отладчик что говорит?
|
|||
2
Ненавижу 1С
гуру
04.10.13
✎
12:58
|
может надо реквизит "отражать в упр. учете" установить?
|
|||
3
catena
04.10.13
✎
12:59
|
(0)А может при открытии что-то обрабатывается?
|
|||
4
Сметанин
04.10.13
✎
13:05
|
(1) Попробую поковыряться. Просто странно доки обработкой проводятся, но движения по этому регистру нет. Перепроводишь руками - все ОК. Конфа почти неизмененная. В интернете ничего не нашел. Что ж может быть то?
|
|||
5
Сметанин
04.10.13
✎
14:22
|
Может кто-нибудь подскажет где запускается формирование движений по регистру Учет затрат управленческий? Прогнал в отладчике, не смог найти
Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОборудованию, ТаблицаПоОбъектамСтроительства, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок); ДвиженияПоРегистрамУпр(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОборудованию, ТаблицаПоОбъектамСтроительства, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок); Если НЕ СтруктураШапкиДокумента.СпособВеденияПартионногоУчетаПоОрганизации = Перечисления.СпособыВеденияПартионногоУчетаПоОрганизациям.НеВедется Тогда ДвиженияПоРегиструСписанныеТовары(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, Отказ, Заголовок); КонецЕсли; // Движения по регистрам подсистемы НДС. Если ВидОперации <> Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку И СтруктураШапкиДокумента.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда ТаблицыДокумента = Новый Структура(); ТаблицыДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварам); ТаблицыДокумента.Вставить("ТаблицаПоУслугам", ТаблицаПоУслугам); ТаблицыДокумента.Вставить("ТаблицаПоОборудованию", ТаблицаПоОборудованию); ТаблицыДокумента.Вставить("ТаблицаПоОбъектамСтроительства", ТаблицаПоОбъектамСтроительства); // Выполнить движения по спецрегистрам подсистемы учета НДС ДвиженияРегистровПодсистемыНДС(СтруктураШапкиДокумента, ТаблицыДокумента, Отказ); КонецЕсли; // Формирование движений по отражению затрат. УправлениеЗатратами.ДвиженияПоПрочимЗатратам( СтруктураШапкиДокумента, ТаблицаПоУслугам ); ДвиженияПоРегиструТоварыОрганизацийРегл(РежимПроведения, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоОборудованию, Отказ, Заголовок, СтруктураШапкиДокумента); ДвиженияПоРегистрамОперативныхВзаиморасчетов(РежимПроведения, ТаблицаПоВзаиморасчетам, Отказ, Заголовок, СтруктураШапкиДокумента); ПроводкиНУ = ?(СтруктураШапкиДокумента.ОтражатьВНалоговомУчете,Движения.Налоговый,Неопределено); ДвиженияПоРегистрамРегл(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОборудованию, ТаблицаПоОбъектамСтроительства, ТаблицаПоВзаиморасчетам, Отказ, Заголовок,ПроводкиНУ); ДвиженияПоРегистрамУСНРегл(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, ТаблицаПоОборудованию, Отказ, Заголовок); // По партиям, оприходованным по ордеру с правом продажи, возможно следует выполнить // корректировку списания Если СтруктураШапкиДокумента.ОтражатьВУправленческомУчете И ВидПоступления = Перечисления.ВидыПоступленияТоваров.ПоОрдеру тогда УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить()); КонецЕсли; // Разницы по ПБУ18/02 Если ВидОперации <> Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда Если ТаблицаПоУслугам.Количество() > 0 Тогда ДвиженияПоРазницамПоУслугам(СтруктураШапкиДокумента, ТаблицаПоУслугам,ПроводкиНУ); КонецЕсли; КонецЕсли; Если СтруктураШапкиДокумента.ОтражатьВНалоговомУчете Тогда Движения.Налоговый.Записать(Ложь); КонецЕсли; КонецПроцедуры // ДвиженияПоРегистрам() // По результату запроса по шапке документа формируем движения по регистрам для целей упр. учета. // // Параметры: // РежимПроведения - режим проведения документа (оперативный или неоперативный), // СтруктураШапкиДокумента - структура, содержащая рексвизиты шапки документа и результаты запроса по шапке // ТаблицаПоТоварам - таблица значений, содержащая данные для проведения и проверки ТЧ Товары // ТаблицаПоТаре - таблица значений, содержащая данные для проведения и проверки ТЧ "Возвратная тара", // ТаблицаПоУслугам - таблица значений, содержащая данные для проведения и проверки ТЧ "Услуги", // ТаблицаПоОборудованию - таблица значений, содержащая данные для проведения и проверки ТЧ "Оборудование", // ТаблицаПоОбъектамСтроительства - таблица значений, содержащая данные для проведения и проверки ТЧ "Объекты строительства", // Отказ - флаг отказа в проведении, // Заголовок - строка, заголовок сообщения об ошибке проведения. // Процедура ДвиженияПоРегистрамУпр(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОборудованию, ТаблицаПоОбъектамСтроительства, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок); Если Не СтруктураШапкиДокумента.ОтражатьВУправленческомУчете Тогда Возврат; КонецЕсли; Если СтруктураШапкиДокумента.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия И СтруктураШапкиДокумента.ВидПоступления = Перечисления.ВидыПоступленияТоваров.НаСклад И (СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.НТТ ИЛИ СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.Розничный) Тогда УправлениеСертификациейНоменклатуры.ПроверитьНаСертификацию( ТаблицаПоТоварам.ВыгрузитьКолонку("СерияНоменклатуры"), Дата, Ложь, Заголовок); КонецЕсли; УправлениеВзаиморасчетами.ВыполнитьДвиженияПоРегистрамУпрВзаиморасчетов(ЭтотОбъект, СтруктураШапкиДокумента, мСтруктураПараметровВзаиморасчетов, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, ВидДвиженияНакопления.Расход, Отказ, Заголовок); // ТОВАРЫ ПО РЕГИСТРУ ТоварыНаСкладах. // ТОВАРЫ ПО РЕГИСТРУ ПартииТоваровНаСкладах. // ТАРА ПО РЕГИСТРУ ТоварыНаСкладах. // ТАРА ПО РЕГИСТРУ ПартииТоваровНаСкладах. ТоварыИТараПоРегистрамОстатковИПартийУпр(РежимПроведения, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоОборудованию, ТаблицаПоУслугам, ТаблицаПоОбъектамСтроительства, Отказ, Заголовок, СтруктураШапкиДокумента); Если НЕ Отказ Тогда // ТОВАР, ТАРА ПО РЕГИСТРУ ТоварыПолученные. СтруктТаблицДокумента = Новый Структура; ТабИменТара = неопределено; ТабИменТовары = Неопределено; ОбщегоНазначения.ПереименоватьКолонкуТаблицыЗначений(ТаблицаПоТаре, ТабИменТара, "ЗаказПоставщику", "Сделка"); СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТаре); Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия И СтруктураШапкиДокумента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом) ИЛИ ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда Если ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда ОбщегоНазначения.ПереименоватьКолонкуТаблицыЗначений(ТаблицаПоТоварам, ТабИменТовары, "ЗаказПокупателя", "Сделка"); Иначе ОбщегоНазначения.ПереименоватьКолонкуТаблицыЗначений(ТаблицаПоТоварам, ТабИменТовары, "ЗаказПоставщику", "Сделка"); КонецЕсли; СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварам); КонецЕсли; ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыПолученные, СтруктТаблицДокумента); ОбщегоНазначения.ВосстановитьИменаКолонокТаблицыЗначений(ТаблицаПоТаре, ТабИменТара); Если ТабИменТовары<>неопределено Тогда ОбщегоНазначения.ВосстановитьИменаКолонокТаблицыЗначений(ТаблицаПоТоварам, ТабИменТовары); КонецЕсли; ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ДоговорКонтрагента", ДоговорКонтрагента); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Контрагент", Контрагент); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "Организация", Организация); ОпределитьСделкуВСтрокахТаблицыЗначений(ТаблицыДанныхДокумента, "ТаблицаПоТаре", "Сделка", СтруктураШапкиДокумента); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПолучения", Перечисления.СтатусыПолученияПередачиТоваров.ВозвратнаяТара, "ТаблицаПоТаре"); Если ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия И СтруктураШапкиДокумента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда ОпределитьСделкуВСтрокахТаблицыЗначений(ТаблицыДанныхДокумента, "ТаблицаПоТоварам", "Сделка", СтруктураШапкиДокумента); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПолучения", Перечисления.СтатусыПолученияПередачиТоваров.НаКомиссию, "ТаблицаПоТоварам"); ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПолучения", Перечисления.СтатусыПолученияПередачиТоваров.ВПереработку, "ТаблицаПоТоварам"); КонецЕсли; ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыПолученные, ВидДвиженияНакопления.Приход, ТаблицыДанныхДокумента, Дата); // ТОВАР, ТАРА И ОБОРУДОВАНИЕ ПО РЕГИСТРУ ЗаказыПоставщикам. СтруктТаблицДокумента = Новый Структура; СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварам); СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТаре); СтруктТаблицДокумента.Вставить("ТаблицаПоОборудованию", ТаблицаПоОборудованию); Если ВидОперации <> Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда СтруктТаблицДокумента.Вставить("ТаблицаПоУслугам", ТаблицаПоУслугам); КонецЕсли; ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ЗаказыПоставщикам, СтруктТаблицДокумента); Если ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда //при поступлении материалов в переработку должны сформироваться движения, значение измерения ЗаказПоставщику = заказ покупателя на переработку ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ЗаказПоставщику", СтруктураШапкиДокумента.Сделка, "ТаблицаПоТоварам"); КонецЕсли; ОбщегоНазначения.УдалитьСтрокиИзТаблицДокумента(ТаблицыДанныхДокумента, "ЗаказПоставщику"); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ДоговорКонтрагента", СтруктураШапкиДокумента.ДоговорКонтрагента); СтатусПартии = ?(ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку, Перечисления.СтатусыПартийТоваров.ВПереработку, Перечисления.СтатусыПартийТоваров.Купленный); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", СтатусПартии, "ТаблицаПоТоварам"); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.ВозвратнаяТара, "ТаблицаПоТаре"); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", Перечисления.СтатусыПартийТоваров.Оборудование, "ТаблицаПоОборудованию"); Если ВидОперации <> Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "СтатусПартии", СтатусПартии, "ТаблицаПоУслугам"); КонецЕсли; ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ЗаказыПоставщикам, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата); КонецЕсли; // Снятие резерва по приходному ордеру Если СтруктураШапкиДокумента.ВидПоступления = Перечисления.ВидыПоступленияТоваров.ПоОрдеру И НЕ Отказ Тогда // Сначала удалим из таблицы строки, по которым не надо списывать резерв. ТаблицаПоТоварамПоОрдерамБезПраваПродажи = УдалитьСтрокиБезПраваПродажи(ТаблицаПоТоварам); ТаблицаПоТоварамПоОрдерамБезПраваПродажи.Колонки.ДокументПолучения.Имя = "ДокументРезерва"; ТаблицаПоТареПоОрдерамБезПраваПродажи = УдалитьСтрокиБезПраваПродажи(ТаблицаПоТаре); ТаблицаПоТареПоОрдерамБезПраваПродажи.Колонки.ДокументПолучения.Имя = "ДокументРезерва"; СтруктТаблицДокумента = Новый Структура; СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварамПоОрдерамБезПраваПродажи); СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТареПоОрдерамБезПраваПродажи); ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыВРезервеНаСкладах, СтруктТаблицДокумента); ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыВРезервеНаСкладах, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата); КонецЕсли; // Резервирование по заказам покупателей // Сначала удалим из таблицы строки, по которым не надо ничего резервировать // (реквизит ЗаказПокупателя пуст) ТаблицаПоТоварамЗаказамПокупателей = ТаблицаПоТоварам.Скопировать(); //для вида операции ВПереработку реквизит ЗаказПокупателя всегда заполнен, поэтому вид операции не проверяем УдалитьСтрокиБезЗаказаДляРезерва(ТаблицаПоТоварамЗаказамПокупателей); // Теперь зарезервируем возвратную тару // Сначала удалим из таблицы строки, по которым не надо ничего резервировать // (реквизит ЗаказПокупателя пуст) ТаблицаПоТареЗаказамПокупателей = ТаблицаПоТаре.Скопировать(); УдалитьСтрокиБезЗаказаДляРезерва(ТаблицаПоТареЗаказамПокупателей); Если ТаблицаПоТоварамЗаказамПокупателей.Количество() > 0 ИЛИ ТаблицаПоТареЗаказамПокупателей.Количество() > 0 Тогда Если ВидПоступления = Перечисления.ВидыПоступленияТоваров.ПоОрдеру Тогда // Контроль остатков товара Если ТаблицаПоТоварамЗаказамПокупателей.Количество() <> 0 Тогда ПроцедурыКонтроляОстатков.ТоварыВРезервеНаСкладахКонтрольОстатков("Товары", СтруктураШапкиДокумента, Отказ, Заголовок, РежимПроведения); КонецЕсли; Если ТаблицаПоТареЗаказамПокупателей.Количество() <> 0 Тогда ПроцедурыКонтроляОстатков.ТоварыВРезервеНаСкладахКонтрольОстатков("ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок, РежимПроведения); КонецЕсли; КонецЕсли; Если НЕ Отказ Тогда ТаблицаПоТоварамЗаказамПокупателей.Колонки.ЗаказПокупателя.Имя = "ДокументРезерва"; ТаблицаПоТареЗаказамПокупателей .Колонки.ЗаказПокупателя.Имя = "ДокументРезерва"; СтруктТаблицДокумента = Новый Структура; СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварамЗаказамПокупателей); СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТареЗаказамПокупателей); ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.ТоварыВРезервеНаСкладах, СтруктТаблицДокумента); ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.ТоварыВРезервеНаСкладах, ВидДвиженияНакопления.Приход, ТаблицыДанныхДокумента, Дата); КонецЕсли; КонецЕсли; // Товары и тара по регистру "Размещение заказов покупателей" ТаблицаПоТоварамРазмещение = УдалитьСтрокиНеТребующиеРазмещенияВЗаказе(ТаблицаПоТоварам); ТаблицаПоТареРазмещение = УдалитьСтрокиНеТребующиеРазмещенияВЗаказе(ТаблицаПоТаре); Если ТаблицаПоТоварамРазмещение.Количество() > 0 ИЛИ ТаблицаПоТареРазмещение.Количество() > 0 Тогда Движения.РазмещениеЗаказовПокупателей.КонтрольОстатков(ЭтотОбъект, "Товары", СтруктураШапкиДокумента, Отказ, Заголовок, РежимПроведения); Движения.РазмещениеЗаказовПокупателей.КонтрольОстатков(ЭтотОбъект, "ВозвратнаяТара", СтруктураШапкиДокумента, Отказ, Заголовок, РежимПроведения); Если НЕ Отказ Тогда СтруктТаблицДокумента = Новый Структура; СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам", ТаблицаПоТоварамРазмещение); СтруктТаблицДокумента.Вставить("ТаблицаПоТаре", ТаблицаПоТареРазмещение); ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру(Движения.РазмещениеЗаказовПокупателей, СтруктТаблицДокумента); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ТоварТара", Перечисления.ТоварТара.Товар, "ТаблицаПоТоварам"); ОбщегоНазначения.УстановитьЗначениеВТаблицыДокумента(ТаблицыДанныхДокумента, "ТоварТара", Перечисления.ТоварТара.Тара, "ТаблицаПоТаре"); ОбщегоНазначения.ЗаписатьТаблицыДокументаВРегистр(Движения.РазмещениеЗаказовПокупателей, ВидДвиженияНакопления.Расход, ТаблицыДанныхДокумента, Дата); КонецЕсли; КонецЕсли; // Если установлен флаг РегистрироватьЦеныПоставщика, нужно зарегистрировать цены Если РегистрироватьЦеныПоставщика Тогда НаборДвижений = Движения.ЦеныНоменклатурыКонтрагентов; // Получим таблицу значений, совпадающую со структурой набора записей регистра. ТаблицаДвижений = НаборДвижений.Выгрузить(); ТаблицаДвижений.Очистить(); ТаблицаПоТоварамЦены = ТаблицаПоТоварам.Скопировать(); СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов; // Пересчитаем цены, согласно флагу типа цен контрагентов (цена включает НДС) Если ТипЦен.ЦенаВключаетНДС Тогда Если НЕ СуммаВключаетНДС Тогда Для Каждого СтрокаТабличнойЧасти Из ТаблицаПоТоварамЦены Цикл СтрокаТабличнойЧасти.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(СтрокаТабличнойЧасти.Цена, СпособЗаполненияЦен, Ложь, Истина, Истина, УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); КонецЦикла; КонецЕсли; Иначе Если СуммаВключаетНДС Тогда Для Каждого СтрокаТабличнойЧасти Из ТаблицаПоТоварамЦены Цикл СтрокаТабличнойЧасти.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(СтрокаТабличнойЧасти.Цена, СпособЗаполненияЦен, Истина, Ложь, Ложь, УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); КонецЦикла; КонецЕсли; КонецЕсли; // Удалим строки с одинаковым товаром и характеристикой. МассивСтрокДляУдаления = Новый Массив; СписокСвернутыхСтрок = Новый СписокЗначений; Для Каждого СтрокаТаблицыПоТоварамЦены Из ТаблицаПоТоварамЦены Цикл СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить("Номенклатура", СтрокаТаблицыПоТоварамЦены.Номенклатура); СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", СтрокаТаблицыПоТоварамЦены.ХарактеристикаНоменклатуры); СтрокиПоТовару = ТаблицаПоТоварамЦены.НайтиСтроки(СтруктураОтбора); Если СтрокиПоТовару.Количество() > 0 Тогда //Есть несколько строк по товару. ПерваяСтрока = СтрокиПоТовару[0]; Цена = 0; Для каждого СтрокаПоТовару Из СтрокиПоТовару Цикл Если СписокСвернутыхСтрок.НайтиПоЗначению(СтрокаПоТовару) = Неопределено Тогда СписокСвернутыхСтрок.Добавить(СтрокаПоТовару); Иначе Продолжить; КонецЕсли; Цена = Цена + СтрокаПоТовару.Цена/СтрокаПоТовару.Коэффициент; Если СтрокаПоТовару <> ПерваяСтрока Тогда МассивСтрокДляУдаления.Добавить(СтрокаПоТовару); КонецЕсли; КонецЦикла; Если Цена > 0 Тогда ПерваяСтрока.Цена = Цена / СтрокиПоТовару.Количество() * ПерваяСтрока.Коэффициент; КонецЕсли; КонецЕсли; КонецЦикла; Для Каждого СтрокаДляУдаления Из МассивСтрокДляУдаления Цикл ТаблицаПоТоварамЦены.Удалить(СтрокаДляУдаления); КонецЦикла; Запрос = Новый Запрос(" |ВЫБРАТЬ | Цены.Номенклатура КАК Номенклатура, | Цены.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК Цены |ГДЕ | Цены.Период = &ДатаЦен | И Цены.ТипЦен = &ТипЦен | И Цены.Номенклатура В (&СписокНоменклатуры) |"); Запрос.УстановитьПараметр("ДатаЦен", НачалоДня(Дата)); Запрос.УстановитьПараметр("ТипЦен", ТипЦен); Запрос.УстановитьПараметр("СписокНоменклатуры", ТаблицаПоТоварамЦены.ВыгрузитьКолонку("Номенклатура")); СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить("Номенклатура"); СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры"); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СтруктураОтбора.Номенклатура = Выборка.Номенклатура; СтруктураОтбора.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры; СтрокиПоТовару = ТаблицаПоТоварамЦены.НайтиСтроки(СтруктураОтбора); Для Каждого СтрокаТовара Из СтрокиПоТовару Цикл ТаблицаПоТоварамЦены.Удалить(СтрокаТовара); КонецЦикла; КонецЦикла; // Заполним таблицу движений. ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварамЦены, ТаблицаДвижений); // Недостающие поля. ТаблицаДвижений.ЗаполнитьЗначения(ТипЦен,"ТипЦен"); Если СтруктураШапкиДокумента.Свойство("ВалютаЗаказа") Тогда ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ВалютаЗаказа,"Валюта"); Иначе ТаблицаДвижений.ЗаполнитьЗначения(СтруктураШапкиДокумента.ВалютаДокумента,"Валюта"); КонецЕсли; НаборДвижений.мПериод = Дата; НаборДвижений.мТаблицаДвижений = ТаблицаДвижений; Если Не Отказ Тогда Движения.ЦеныНоменклатурыКонтрагентов.ВыполнитьДвижения(); КонецЕсли; КонецЕсли; // если вид операции = объекты строительства Если ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ОбъектыСтроительства Тогда НаборДвижений = Движения.СтроительствоОбъектовОсновныхСредств; // Получим таблицу значений, совпадающую со структурой набора записей регистра. ТаблицаДвиженийОбъектыСтроительства = НаборДвижений.Выгрузить(); ТаблицаДвиженийОбъектыСтроительства.Очистить(); // Заполним таблицу движений. ТаблицаПоОбъектамСтроительства.Колонки.Сумма.Имя = "СуммаДок"; ТаблицаПоОбъектамСтроительства.Колонки.Стоимость.Имя = "Сумма"; ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоОбъектамСтроительства, ТаблицаДвиженийОбъектыСтроительства); // Недостающие поля. //ТаблицаДвижений.ЗаполнитьЗначения(СкладОрдер,"ДокументРезерва"); //ТаблицаДвижений.ЗаполнитьЗначения(СкладОрдер.Склад,"Склад"); НаборДвижений.мПериод = Дата; НаборДвижений.мТаблицаДвижений = ТаблицаДвиженийОбъектыСтроительства; |
|||
6
MrStomak
04.10.13
✎
14:25
|
Подпиской на событие проведения движения по этому регистру делаются.
|
|||
7
Сметанин
04.10.13
✎
14:36
|
(6) Спасибо. ПриПроведенииРасширеннаяАналитикаЗапасовИзменениеСостояния - эта подписка?
|
|||
8
MrStomak
04.10.13
✎
14:52
|
она
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |