mihalich979
10.07.19
✎
11:47
при проведении поступления от клиента
вываливается ошибка:
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1886)}: Ошибка при вызове метода контекста (Записать)
Результат = Форма.Записать(ПараметрыЗаписи);
по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(405)}: Ошибка при вызове метода контекста (Записать)
Объект.Движения.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
что самое интересное
если снять галку «Проведено банком» то документ проводится, но естественно проводок не делает.
ставим обратно галку «проведено банком» и документ перестает проводиться и вываливается ошибка.
PiotrLoginov
10.07.19
✎
12:23
других сообщений при ошибке нет? не верится, что вся информация заканчивается на строке «по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи'»
mihalich979
10.07.19
✎
14:22
вечером сниму копию и локально по отлаживаю.
rilovnikova
10.07.19
✎
22:14
Здравствуйте, получилось решить? У меня такая же проблема в ут, не могу найти, в чем косяк
palsergeich
10.07.19
✎
22:23
Без отладки никак.
У меня валилось на корявой реализации нового механизма взаиморасчетов в ЕРП, только отладка, только хардкор
palsergeich
10.07.19
✎
22:27
И останова по ошибке не ловит)
Они по ходу методолога поменяли, а вот сделать нормально — нишмогла
PaulBC
11.07.19
✎
03:08
(0) валится на проверке даты запрета в ОперативныеВзаиморасчетыСервер.ЗаполнитьОперативныеВзаиморасчеты
У себя пока убрал проверку, в 2.4.9 вроде переделали.
rilovnikova
11.07.19
✎
09:50
(8) А в какой именно строке? Просмотрела всю процедуру, не могу понять.
Процедура ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры) Экспорт
#Область ИнициализацияЗапросаИПеременных
АналитикаУчетаПоПартнерам = ОсновныеПараметры.АналитикаУчетаПоПартнерам;
ОбъектРасчетов = ОсновныеПараметры.ОбъектРасчетов;
ВалютаРасчетов = ОсновныеПараметры.ВалютаРасчетов;
ЭтоРасчетыСКлиентами = ОсновныеПараметры.ЭтоРасчетыСКлиентами;
Регистратор = ОсновныеПараметры.Регистратор;
Порядок = ОсновныеПараметры.Порядок;
ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
ВалютаУправленческогоУчета = Константы.ВалютаУправленческогоУчета.Получить();
АналитикаОбъектаРасчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(АналитикаУчетаПоПартнерам,»Организация»);
Организация = АналитикаОбъектаРасчета.Организация;
//Если график исполнения в договоре, то вместо графика заказа будет уточняться график договора.
//Если пользователь каким-то образом ввел заказы с графиками по такому договору, то все этапы таких заказов будут отнесены к графику договора
//и закрываться будут по ФИФО независимо от привязки накладных к заказам
Если ТипЗнч(ОбъектРасчетов) = Тип(«СправочникСсылка.ДоговорыКонтрагентов») Тогда
ГрафикИсполненияДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектРасчетов,»ГрафикИсполненияДоговора»);
ГрафикВДоговоре = ЗначениеЗаполнено(ГрафикИсполненияДоговора);
Иначе
ГрафикИсполненияДоговора = Неопределено;
ГрафикВДоговоре = ЛОЖЬ;
КонецЕсли;
Если ЭтоРасчетыСКлиентами Тогда
РасчетыПоЗаказу = ТипЗнч(ОбъектРасчетов) = Тип(«ДокументСсылка.ЗаказКлиента»)
ИЛИ ТипЗнч(ОбъектРасчетов) = Тип(«ДокументСсылка.ЗаявкаНаВозвратТоваровОтКлиента»);
Иначе
РасчетыПоЗаказу = ТипЗнч(ОбъектРасчетов) = Тип(«ДокументСсылка.ЗаказПоставщику»);
КонецЕсли;
СписокТиповПлатежек = ТипыПлатежныхДокументов();
РасчетыПоПлатежке = СписокТиповПлатежек.Найти(ТипЗнч(ОбъектРасчетов)) <> Неопределено;
ХозяйственныеОперацииНеОтгрузка = ХозяйственныеОперацииНеОтгрузка();
Если НЕ РасчетыПоПлатежке И ТипЗнч(ОбъектРасчетов) = Тип(«ДокументСсылка.ПервичныйДокумент») Тогда
ТипПервичногоДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектРасчетов,»ТипПервичногоДокумента»);
РасчетыПоПлатежке = ТипПервичногоДокумента = Перечисления.ТипыПервичныхДокументов.ОплатаПоставщику
ИЛИ ТипПервичногоДокумента = Перечисления.ТипыПервичныхДокументов.ОплатаОтКлиента;
КонецЕсли;
ГлобальныеПеременные = Новый Структура;
ГлобальныеПеременные.Вставить(«ЕжедневнаяПереоценка», Константы.ПереоцениватьВалютныеСредстваПоДням.Получить());
//Для уточнения плана оплат — в переменной хранится последний момент времени плана оплат,
//чтобы при добавлении записи в план оплат можно было сразу определить есть ли планы оплат с датой больше, чем добавляемая запись.
ГлобальныеПеременные.Вставить(«МаксимальныйПорядокПланаОплат»,»»);
ГлобальныеПеременные.Вставить(«ВалютаРасчетов», ВалютаРасчетов);
ГлобальныеПеременные.Вставить(«ГрафикВДоговоре», ГрафикВДоговоре);
ГлобальныеПеременные.Вставить(«ЭтоРасчетыСКлиентами», ЭтоРасчетыСКлиентами);
ГлобальныеПеременные.Вставить(«ПорядокПереоценки», Новый Соответствие);
//Хозяйственные операции для заполнения.
ХозяйственныеОперации = Новый Соответствие;
Если ЭтоРасчетыСКлиентами Тогда
ХозяйственныеОперации.Вставить(«ЗачетАванса», Перечисления.ХозяйственныеОперации.ЗачетАвансаКлиента);
ХозяйственныеОперации.Вставить(«ПогашениеЗадолженности», Перечисления.ХозяйственныеОперации.ПогашениеЗадолженностиКлиента);
ХозяйственныеОперации.Вставить(«ВозвратАванса», Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту);
ХозяйственныеОперации.Вставить(«ПереоценкаПоложительная», Перечисления.ХозяйственныеОперации.КурсовыеРазницыКлиентыПрибыль);
ХозяйственныеОперации.Вставить(«ПереоценкаОтрицательная», Перечисления.ХозяйственныеОперации.КурсовыеРазницыКлиентыУбыток);
ХозяйственныеОперации.Вставить(«Планирование», Перечисления.ХозяйственныеОперации.ПланированиеПоЗаказуКлиента);
Иначе
ХозяйственныеОперации.Вставить(«ЗачетАванса», Перечисления.ХозяйственныеОперации.ЗачетАвансаПоставщику);
ХозяйственныеОперации.Вставить(«ПогашениеЗадолженности», Перечисления.ХозяйственныеОперации.ПогашениеЗадолженностиПоставщику);
ХозяйственныеОперации.Вставить(«ВозвратАванса», Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПоставщика);
ХозяйственныеОперации.Вставить(«ПереоценкаПоложительная», Перечисления.ХозяйственныеОперации.КурсовыеРазницыПоставщикиУбыток);
ХозяйственныеОперации.Вставить(«ПереоценкаОтрицательная», Перечисления.ХозяйственныеОперации.КурсовыеРазницыПоставщикиПрибыль);
ХозяйственныеОперации.Вставить(«Планирование», Перечисления.ХозяйственныеОперации.ПланированиеПоЗаказуПоставщику);
КонецЕсли;
ХозяйственныеОперации.Вставить(«ПереносАванса», Перечисления.ХозяйственныеОперации.ПереносАванса);
ГлобальныеПеременные.Вставить(«ХозяйственныеОперации», ХозяйственныеОперации);
Запрос = Новый Запрос;
Менеджер = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = Менеджер;
Запрос.УстановитьПараметр(«ОбъектРасчетов», ОбъектРасчетов);
Запрос.УстановитьПараметр(«АналитикаУчетаПоПартнерам», АналитикаУчетаПоПартнерам);
Запрос.УстановитьПараметр(«Организация», Организация);
Запрос.УстановитьПараметр(«ВалютаУпр», ВалютаУправленческогоУчета);
Запрос.УстановитьПараметр(«ВалютаРегл», ВалютаРегламентированногоУчета);
Запрос.УстановитьПараметр(«СписокТиповЗаказов», СписокТиповРегистраторовПланов());
Запрос.УстановитьПараметр(«ВалютаРасчетов», ВалютаРасчетов);
Запрос.УстановитьПараметр(«Порядок», Порядок);
Запрос.УстановитьПараметр(«ГрафикВДоговоре», ГрафикВДоговоре);
Запрос.УстановитьПараметр(«ГрафикИсполненияДоговора», ГрафикИсполненияДоговора);
Запрос.УстановитьПараметр(«РасчетыПоЗаказу», РасчетыПоЗаказу);
Запрос.УстановитьПараметр(«ЭтоРасчетыСКлиентами», ЭтоРасчетыСКлиентами);
Запрос.УстановитьПараметр(«Регистратор», Регистратор);
Запрос.УстановитьПараметр(«ПорядокЗачетаПоДатеПлатежа», Константы.ПорядокЗачетаДокументовПоДатеОперации.Получить() = 1);
#КонецОбласти
#Область ИнициализацияНаборовЗаписей
Если ЭтоРасчетыСКлиентами Тогда
НаборЗаписейПоСрокам = РегистрыНакопления.РасчетыСКлиентамиПоСрокам.СоздатьНаборЗаписей();
НаборЗаписейПланОплат = РегистрыНакопления.РасчетыСКлиентамиПланОплат.СоздатьНаборЗаписей();
НаборЗаписейПланОтгрузокПоставок = РегистрыНакопления.РасчетыСКлиентамиПланОтгрузок.СоздатьНаборЗаписей();
Иначе
НаборЗаписейПоСрокам = РегистрыНакопления.РасчетыСПоставщикамиПоСрокам.СоздатьНаборЗаписей();
НаборЗаписейПланОплат = РегистрыНакопления.РасчетыСПоставщикамиПланОплат.СоздатьНаборЗаписей();
НаборЗаписейПланОтгрузокПоставок = РегистрыНакопления.РасчетыСПоставщикамиПланПоставок.СоздатьНаборЗаписей();
КонецЕсли;
Если ОсновныеПараметры.Свойство(«ДополнительныеСвойстваПроведения») И ОсновныеПараметры.ДополнительныеСвойстваПроведения <> Неопределено Тогда
НаборЗаписейПоСрокам.ДополнительныеСвойства.Вставить(«ПроверятьИзмененияРегистра», Истина);
Если ОсновныеПараметры.Свойство(«Регистратор») Тогда
// При изменении проведения документа будут изменения в регистре, но по ним не следует регистрировать документ к отражению,
// так как он в любом случае изменит свои данные отражения при проведении (или распроведении).
НаборЗаписейПоСрокам.ДополнительныеСвойства.Вставить(«НеотражаемыйДокумент», ОсновныеПараметры.Регистратор);
КонецЕсли;
КонецЕсли;
РегистраторРасчетовОбъект = РегистраторРасчетов(ОбъектРасчетов, АналитикаУчетаПоПартнерам, ВалютаРасчетов, ЭтоРасчетыСКлиентами, Организация);
РегистраторРасчетов = РегистраторРасчетовОбъект.Ссылка;
НаборЗаписейПоСрокам.Отбор.Регистратор.Установить(РегистраторРасчетов);
НаборЗаписейПланОплат.Отбор.Регистратор.Установить(РегистраторРасчетов);
НаборЗаписейПланОтгрузокПоставок.Отбор.Регистратор.Установить(РегистраторРасчетов);
#КонецОбласти
//Движения до начала пересчета и остатки.
СформироватьВТДанныхРегистровДоНачалаРасчетов(Запрос, ЭтоРасчетыСКлиентами);
//Данные регистров с порядком меньше порядка начала расчета, далее дополняются.
ТаблицаРасчетовПоСрокам = Менеджер.Таблицы[«ВТРасчетыПоСрокамДо»].ПолучитьДанные().Выгрузить();
ТаблицаПланОплат = Менеджер.Таблицы[«ВТРасчетыПланОплатДо»].ПолучитьДанные().Выгрузить();
ТаблицаПланОтгрузокПоставок = Менеджер.Таблицы[«ВТРасчетыПланОтгрузокПоставокДо»].ПолучитьДанные().Выгрузить();
//Движения после начала пересчета и остатки до начала пересчета для распределения.
РасчетыОтгрузкиПоставки = ПолучитьОтгрузкиПоставки(Запрос, Порядок);
ПланыОплат = ПолучитьПланыОплат(Запрос, Порядок, ЭтоРасчетыСКлиентами);
ПланыОтгрузокПоставок = ПолучитьПланыОтгрузокПоставок(Запрос, Порядок, ЭтоРасчетыСКлиентами);
РасчетыОплаты = ПолучитьОплаты(Запрос, Порядок);
Если РасчетыОплаты.Количество() = 0 И РасчетыОтгрузкиПоставки.Количество() = 0 И ТаблицаРасчетовПоСрокам.Количество() = 0 И НЕ ОсновныеПараметры.ТолькоПланы Тогда
НаборЗаписейПоСрокам.Записать();
КонецЕсли;
Если ПланыОплат.Количество() = 0 И РасчетыОтгрузкиПоставки.Количество() = 0 И ТаблицаПланОплат.Количество() = 0 Тогда
НаборЗаписейПланОплат.Записать();
КонецЕсли;
Если ПланыОтгрузокПоставок.Количество() = 0 И ТаблицаПланОтгрузокПоставок.Количество() = 0 Тогда
НаборЗаписейПланОтгрузокПоставок.Записать();
КонецЕсли;
НужнаПереоценка = (ВалютаРасчетов <> ВалютаРегламентированногоУчета ИЛИ ВалютаРасчетов <> ВалютаУправленческогоУчета)
И РасчетыОтгрузкиПоставки.Количество() > 0
И НЕ ОсновныеПараметры.ТолькоПланы;
Если НужнаПереоценка Тогда
ДатаНачалаКурсов = Мин(РасчетыОтгрузкиПоставки[0].Период,
?(РасчетыОплаты.Количество() > 0,
РасчетыОплаты[0].Период,
РасчетыОтгрузкиПоставки[0].Период));
ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные);
ГлобальныеПеременные.Вставить(«ТаблицаКурсовВалют», ТаблицаКурсовВалют);
КонецЕсли;
ДокументыРасчетаКурсовыхРазниц = Документы.РасчетКурсовыхРазниц.ДокументыПереоценки(Организация,
?(РасчетыОтгрузкиПоставки.Количество() > 0, РасчетыОтгрузкиПоставки[0].ДатаВозникновения, ТекущаяДатаСеанса()),
ТекущаяДатаСеанса(),
ЭтоРасчетыСКлиентами);
ГлобальныеПеременные.Вставить(«ДокументыРасчетаКурсовыхРазниц», ДокументыРасчетаКурсовыхРазниц);
//Добавляем приходные записи по плану оплаты (заказы , график договора)
//накладные не добавляем, т.к они могут быть уменьшены авансами.
Для Каждого Стр Из ПланыОплат Цикл
Если НЕ Стр.ПриходДобавлен Тогда
НовСтр = ТаблицаПланОплат.Добавить();
НовСтр.ВидДвижения = ВидДвиженияНакопления.Приход;
НовСтр.ДокументРегистратор = Стр.Регистратор;
НовСтр.ДокументПлан = Стр.Регистратор;
НовСтр.ВариантОплаты = Стр.ВариантОплаты;
НовСтр.Период = Стр.Период;
НовСтр.ДатаВозникновения = Стр.ДатаВозникновения;
НовСтр.ДатаПлановогоПогашения = Стр.ДатаПлановогоПогашения;
НовСтр.КОплате = Стр.КОплате;
НовСтр.ПорядокОперации = Стр.ПорядокОперации;
НовСтр.ПорядокЗачета = Стр.ПорядокОперации;
НовСтр.ХозяйственнаяОперация = ГлобальныеПеременные.ХозяйственныеОперации[«Планирование»];
КонецЕсли;
КонецЦикла;
//Добавляем приходные записи планов отгрузок.
Для Каждого Стр Из ПланыОтгрузокПоставок Цикл
Если НЕ Стр.ПриходДобавлен Тогда
НовСтр = ТаблицаПланОтгрузокПоставок.Добавить();
НовСтр.ВидДвижения = ВидДвиженияНакопления.Приход;
НовСтр.ДокументРегистратор = Стр.Регистратор;
НовСтр.ДокументПлан = Стр.Регистратор;
НовСтр.Период = Стр.Период;
НовСтр.ДатаВозникновения = Стр.ДатаВозникновения;
НовСтр.ДатаПлановогоПогашения = Стр.ДатаПлановогоПогашения;
НовСтр.Сумма = Стр.КОтгрузкеПоставке;
НовСтр.ПорядокЗачета = Стр.ПорядокОперации;
НовСтр.ПорядокОперации = Стр.ПорядокОперации;
КонецЕсли;
КонецЦикла;
//Для определения курса корректировки реализации в минус.
//Ключ — ДокументСсылка.РеализациТоваровУслуг, ДокументСсылка.АктВыполненныхРабот
//Значение — Структура
// * СуммаДокумента, СуммаДокументаРегл, СуммаДокументаУпр — нужны для определения среднего курса реализации при проведении корректировок.
ДанныеНакладных = Новый Соответствие;
ТаблицаДанныхНакладных = ПолучитьДанныеНакладных(Запрос);
Для Каждого Строка Из ТаблицаДанныхНакладных Цикл
ДанныеНакладных.Вставить(Строка.Накладная,
СтруктураСумм(Строка.Сумма,
Строка.СуммаРегл,
Строка.СуммаУпр));
КонецЦикла;
ГлобальныеПеременные.Вставить(«ДанныеНакладных», ДанныеНакладных);
ЗаписейОплаты = РасчетыОплаты.Количество();
ЗаписейОтгрузкиПоставки = РасчетыОтгрузкиПоставки.Количество();
ЗаписейОбработать = ЗаписейОплаты + ЗаписейОтгрузкиПоставки;
Индексы = Новый Структура;
//Индекс текущей обрабатываемой строки отгрузок.
Индексы.Вставить(«ИндексОтгрузкиПоставки», 0);
//Индекс текущей обрабатываемой строки оплат.
Индексы.Вставить(«ИндексОплаты», 0);
//Для распределения копеек в рамках документа.
ТекущийДокументОплаты = Неопределено;
ТекущийДокументОтгрузкиПоставки = Неопределено;
//Сколько строк отгрузки пропущено для зачета корректировкой реализации.
ПропускОтгрузкиПоставки = 0;
Пока Индексы.ИндексОплаты + Индексы.ИндексОтгрузкиПоставки < ЗаписейОбработать Цикл
Если Индексы.ИндексОплаты <= ЗаписейОплаты — 1 И Индексы.ИндексОтгрузкиПоставки <= ЗаписейОтгрузкиПоставки — 1 Тогда
СтрокаОплаты = РасчетыОплаты[Индексы.ИндексОплаты];
СтрокаОтгрузкиПоставки = РасчетыОтгрузкиПоставки[Индексы.ИндексОтгрузкиПоставки];
//Оплата раньше отгрузки.
Если СтрокаОплаты.ПорядокОперации < СтрокаОтгрузкиПоставки.ПорядокОперации
//В пределах регистратора (при расчетах по накладным) должен происходить зачет аванса.
ИЛИ СтрокаОплаты.Регистратор = СтрокаОтгрузкиПоставки.Регистратор Тогда
//Переброс аванса на расчетный документ — накладную.
НеОтгрузка = ХозяйственныеОперацииНеОтгрузка.Найти(СтрокаОтгрузкиПоставки.ХозяйственнаяОперация) <> Неопределено;
ДвойнаяЗаписьНеНужна = НеОтгрузка
//Если расчеты по платежке, то эти движения уже отражены в оперативных расчетах в рамках переноса с одного объекта расчетов на другой.
ИЛИ РасчетыПоПлатежке;
//Приход предоплаты.
Если НЕ СтрокаОплаты.ПриходДобавлен Тогда
ПересчитатьСуммыЕслиЭтоКорректировка(ГлобальныеПеременные, СтрокаОплаты);
ДобавитьПриход(ГлобальныеПеременные, ТаблицаРасчетовПоСрокам, СтрокаОплаты, «Оплата»);
КонецЕсли;
//Уменьшаем план отгрузки, если есть.
Если НЕ СтрокаОтгрузкиПоставки.ПланОтгрузокПоставокСписан Тогда
СписатьПланОтгрузкиПоставки(ГлобальныеПеременные, ТаблицаПланОтгрузокПоставок, СтрокаОтгрузкиПоставки, ПланыОтгрузокПоставок);
КонецЕсли;
Если СтрокаОтгрузкиПоставки.Сумма <> 0 Тогда
Если ТекущийДокументОплаты <> СтрокаОплаты.РасчетныйДокумент Тогда
ПредоплатаРаспределеноРегл = 0;
ПредоплатаРаспределеноУпр = 0;
ТекущийДокументОплаты = СтрокаОплаты.РасчетныйДокумент;
КонецЕсли;
Если ТекущийДокументОтгрузкиПоставки <> СтрокаОтгрузкиПоставки.РасчетныйДокумент Тогда
ДолгРаспределеноРегл = 0;
ДолгРаспределеноУпр = 0;
ТекущийДокументОтгрузкиПоставки = СтрокаОтгрузкиПоставки.РасчетныйДокумент;
КонецЕсли;
//Добавляем запись списания предоплаты.
НовСтр_Предоплата_Расход = ТаблицаРасчетовПоСрокам.Добавить();
НовСтр_Предоплата_Расход.ВидДвижения = ВидДвиженияНакопления.Расход;
НовСтр_Предоплата_Расход.ДокументРегистратор = СтрокаОтгрузкиПоставки.Регистратор;
НовСтр_Предоплата_Расход.ВалютаДокумента = СтрокаОтгрузкиПоставки.ВалютаДокумента;
НовСтр_Предоплата_Расход.Период = СтрокаОтгрузкиПоставки.Период;
НовСтр_Предоплата_Расход.РасчетныйДокумент = СтрокаОплаты.РасчетныйДокумент;
НовСтр_Предоплата_Расход.ДатаВозникновения = СтрокаОплаты.ДатаВозникновения;
НовСтр_Предоплата_Расход.ДатаПлановогоПогашения = Дата(1,1,1);
НовСтр_Предоплата_Расход.ПорядокЗачета = СтрокаОплаты.ПорядокОперации;
НовСтр_Предоплата_Расход.ПорядокОперации = СтрокаОтгрузкиПоставки.ПорядокОперации;
НовСтр_Предоплата_Расход.СтатьяДвиженияДенежныхСредств = СтрокаОтгрузкиПоставки.СтатьяДвиженияДенежныхСредств;
НовСтр_Предоплата_Расход.КорОбъектРасчетов = СтрокаОплаты.КорОбъектРасчетов;
СуммаСписания = Мин(СтрокаОплаты.Сумма, СтрокаОтгрузкиПоставки.Сумма);
//Возврат аванса с ручным курсом отражаем по курсу возврата.
Если СтрокаОтгрузкиПоставки.ЭтоВозвратАванса И СтрокаОтгрузкиПоставки.РучнойКурсРегл Тогда
ПредоплатаРеглПредв = СтрокаОтгрузкиПоставки.СуммаРегл / СтрокаОтгрузкиПоставки.Сумма * СуммаСписания;
//Ошибки округления сразу зачитываем, если что они переоценятся.
ИначеЕсли СтрокаОтгрузкиПоставки.РучнойКурсРегл И СтрокаОтгрузкиПоставки.Сумма = СуммаСписания Тогда
ПредоплатаРеглПредв = СтрокаОтгрузкиПоставки.СуммаРегл;
//Остальные авансы по курсу аванса.
Иначе
ПредоплатаРеглПредв = СтрокаОплаты.СуммаРегл / СтрокаОплаты.Сумма * СуммаСписания;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.ЭтоВозвратАванса И СтрокаОтгрузкиПоставки.РучнойКурсУпр Тогда
ПредоплатаУпрПредв = СтрокаОтгрузкиПоставки.СуммаУпр / СтрокаОтгрузкиПоставки.Сумма * СуммаСписания;
ИначеЕсли СтрокаОтгрузкиПоставки.РучнойКурсУпр И СтрокаОтгрузкиПоставки.Сумма = СуммаСписания Тогда
ПредоплатаУпрПредв = СтрокаОтгрузкиПоставки.СуммаУпр;
Иначе
ПредоплатаУпрПредв = СтрокаОплаты.СуммаУпр / СтрокаОплаты.Сумма * СуммаСписания;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.ЭтоВозвратАванса Тогда
НовСтр_Предоплата_Расход.ХозяйственнаяОперация = ХозяйственныеОперации[«ВозвратАванса»];
ИначеЕсли РасчетыПоПлатежке И НЕ СтрокаОтгрузкиПоставки.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВзаимозачетЗадолженности Тогда
НовСтр_Предоплата_Расход.ХозяйственнаяОперация = ХозяйственныеОперации[«ПереносАванса»];
ИначеЕсли НеОтгрузка Тогда
НовСтр_Предоплата_Расход.ХозяйственнаяОперация = СтрокаОтгрузкиПоставки.ХозяйственнаяОперация;
Иначе
НовСтр_Предоплата_Расход.ХозяйственнаяОперация = ХозяйственныеОперации[«ЗачетАванса»];
КонецЕсли;
НовСтр_Предоплата_Расход.Предоплата = СуммаСписания;
НовСтр_Предоплата_Расход.ПредоплатаРегл = Окр(ПредоплатаРеглПредв + ПредоплатаРаспределеноРегл — Окр(ПредоплатаРаспределеноРегл, 2), 2);
НовСтр_Предоплата_Расход.ПредоплатаУпр = Окр(ПредоплатаУпрПредв + ПредоплатаРаспределеноУпр — Окр(ПредоплатаРаспределеноУпр, 2), 2);
ПредоплатаРаспределеноРегл = ПредоплатаРаспределеноРегл + ПредоплатаРеглПредв;
ПредоплатаРаспределеноУпр = ПредоплатаРаспределеноУпр + ПредоплатаУпрПредв;
//Уменьшаем строку оплаты на сумму зачета
СтрокаОплаты.Сумма = СтрокаОплаты.Сумма — НовСтр_Предоплата_Расход.Предоплата;
СтрокаОплаты.СуммаРегл = СтрокаОплаты.СуммаРегл — НовСтр_Предоплата_Расход.ПредоплатаРегл;
СтрокаОплаты.СуммаУпр = СтрокаОплаты.СуммаУпр — НовСтр_Предоплата_Расход.ПредоплатаУпр;
Если НЕ ДвойнаяЗаписьНеНужна Тогда
//Отражаем приход на сумму долга по курсу предоплаты.
НовСтр_Долг_Приход = ТаблицаРасчетовПоСрокам.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр_Долг_Приход, НовСтр_Предоплата_Расход , ,»Предоплата, ПредоплатаУпр, ПредоплатаРегл, КорОбъектРасчетов»);
НовСтр_Долг_Приход.ВидДвижения = ВидДвиженияНакопления.Приход;
НовСтр_Долг_Приход.Период = СтрокаОтгрузкиПоставки.Период;
НовСтр_Долг_Приход.ДатаВозникновения = СтрокаОтгрузкиПоставки.Период;
НовСтр_Долг_Приход.ДатаПлановогоПогашения = СтрокаОтгрузкиПоставки.ДатаПлановогоПогашения;
НовСтр_Долг_Приход.РасчетныйДокумент = СтрокаОтгрузкиПоставки.Регистратор;
НовСтр_Долг_Приход.ПорядокЗачета = СтрокаОтгрузкиПоставки.ПорядокЗачета;
НовСтр_Долг_Приход.ХозяйственнаяОперация = СтрокаОтгрузкиПоставки.ХозяйственнаяОперация;
НовСтр_Долг_Приход.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка();
НовСтр_Долг_Приход.Долг = НовСтр_Предоплата_Расход.Предоплата;
Если СтрокаОтгрузкиПоставки.РучнойКурсУпр Тогда
НовСтр_Долг_Приход.ДолгУпр = СтрокаОтгрузкиПоставки.КурсУпр * СуммаСписания;
Иначе
НовСтр_Долг_Приход.ДолгУпр = НовСтр_Предоплата_Расход.ПредоплатаУпр;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.РучнойКурсРегл Тогда
НовСтр_Долг_Приход.ДолгРегл = СтрокаОтгрузкиПоставки.КурсРегл * СуммаСписания;
Иначе
НовСтр_Долг_Приход.ДолгРегл = НовСтр_Предоплата_Расход.ПредоплатаРегл;
КонецЕсли;
//Переносим предоплату на расчетный документ отгрузки.
НовСтр_Долг_Расход = ТаблицаРасчетовПоСрокам.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр_Долг_Расход, НовСтр_Долг_Приход);
НовСтр_Долг_Расход.ВидДвижения = ВидДвиженияНакопления.Расход;
НовСтр_Долг_Расход.ХозяйственнаяОперация = ХозяйственныеОперации[«ЗачетАванса»];
НовСтр_Долг_Расход.ДатаПлановогоПогашения = СтрокаОтгрузкиПоставки.ДатаПлановогоПогашения;
НовСтр_Долг_Расход.РасчетныйДокумент = СтрокаОтгрузкиПоставки.Регистратор;
НовСтр_Долг_Расход.ДатаВозникновения = СтрокаОтгрузкиПоставки.Период;
НовСтр_Долг_Расход.ПорядокЗачета = СтрокаОтгрузкиПоставки.ПорядокЗачета;
НовСтр_Долг_Расход.ДокументРегистратор = СтрокаОтгрузкиПоставки.Регистратор;
НовСтр_Долг_Расход.СтатьяДвиженияДенежныхСредств = СтрокаОтгрузкиПоставки.СтатьяДвиженияДенежныхСредств;
НовСтр_Долг_Расход.Долг = НовСтр_Предоплата_Расход.Предоплата;
НовСтр_Долг_Расход.ДолгУпр = НовСтр_Предоплата_Расход.ПредоплатаУпр;
НовСтр_Долг_Расход.ДолгРегл = НовСтр_Предоплата_Расход.ПредоплатаРегл;
//Если курс переноса предоплаты и прихода по долгу не совпал, делаем переоценку.
//Возможно, когда и в оплате и в накладной ручные суммы в валюте регл. или упр. учета.
Если НовСтр_Долг_Приход.ДолгРегл <> НовСтр_Долг_Расход.ДолгРегл
ИЛИ НовСтр_Долг_Приход.ДолгУпр <> НовСтр_Долг_Расход.ДолгУпр Тогда
ДобавитьЗаписьПереоценки(ГлобальныеПеременные,
ТаблицаРасчетовПоСрокам,
СтрокаОтгрузкиПоставки.Период,
НовСтр_Долг_Приход,
«Долг»,
НовСтр_Долг_Расход.ДолгРегл — НовСтр_Долг_Приход.ДолгРегл,
НовСтр_Долг_Расход.ДолгУпр — НовСтр_Долг_Приход.ДолгУпр);
КонецЕсли;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.РучнойКурсРегл И НЕ ДвойнаяЗаписьНеНужна Тогда
//Остаток должен быть уменьшен ровно на ту сумму, на которую уже сформирован приход в двойной записи.
ДолгРеглПредв = НовСтр_Долг_Приход.ДолгРегл;
Иначе
//Иначе пропорционально уменьшаем остаток строки.
ДолгРеглПредв = СтрокаОтгрузкиПоставки.КурсРегл * СуммаСписания;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.РучнойКурсУпр И НЕ ДвойнаяЗаписьНеНужна Тогда
ДолгУпрПредв = НовСтр_Долг_Приход.ДолгУпр;
Иначе
ДолгУпрПредв = СтрокаОтгрузкиПоставки.КурсУпр * СуммаСписания;
КонецЕсли;
Если ГлобальныеПеременные.ДанныеНакладных[СтрокаОтгрузкиПоставки.Регистратор] = Неопределено Тогда
ГлобальныеПеременные.ДанныеНакладных.Вставить(СтрокаОтгрузкиПоставки.Регистратор, СтруктураСумм());
КонецЕсли;
СтрокаОтгрузкиПоставки.Сумма = СтрокаОтгрузкиПоставки.Сумма — СуммаСписания;
СтрокаОтгрузкиПоставки.СуммаРегл = СтрокаОтгрузкиПоставки.СуммаРегл — Окр(ДолгРеглПредв + ДолгРаспределеноРегл — Окр(ДолгРаспределеноРегл,2),2);
СтрокаОтгрузкиПоставки.СуммаУпр = СтрокаОтгрузкиПоставки.СуммаУпр — Окр(ДолгУпрПредв + ДолгРаспределеноУпр — Окр(ДолгРаспределеноУпр,2),2);
ДолгРаспределеноРегл = ДолгРаспределеноРегл + ДолгРеглПредв;
ДолгРаспределеноУпр = ДолгРаспределеноУпр + ДолгУпрПредв;
ДанныеНакладной = ГлобальныеПеременные.ДанныеНакладных[СтрокаОтгрузкиПоставки.Регистратор];
ДанныеНакладной.СуммаДокумента = ДанныеНакладной.СуммаДокумента + СуммаСписания;
ДанныеНакладной.СуммаДокументаРегл = ДанныеНакладной.СуммаДокументаРегл + НовСтр_Предоплата_Расход.ПредоплатаРегл; //-
ДанныеНакладной.СуммаДокументаУпр = ДанныеНакладной.СуммаДокументаУпр + НовСтр_Предоплата_Расход.ПредоплатаУпр;
//Уменьшаем график оплаты условной задолженности на разницу суммы зачтенного аванса и строк накладной сверх заказа.
СуммаУменьшенияГрафика = ВзаиморасчетыСервер.СписатьСумму(СуммаСписания, СтрокаОтгрузкиПоставки.КОплате);
Если СуммаСписания > 0 И НЕ СтрокаОплаты.ГрафикСписан Тогда
СкорректироватьПлановыеОплаты(ГлобальныеПеременные, ТаблицаПланОплат, СтрокаОплаты, СуммаСписания, «Аванс», ПланыОплат);
КонецЕсли;
Если СтрокаОплаты.Сумма = 0 Тогда
Индексы.ИндексОплаты = Индексы.ИндексОплаты + 1;
Если Окр(СтрокаОплаты.СуммаРегл, 2) <> 0 ИЛИ Окр(СтрокаОплаты.СуммаУпр, 2) <> 0 Тогда
ДобавитьЗаписьПереоценки(ГлобальныеПеременные, ТаблицаРасчетовПоСрокам, СтрокаОтгрузкиПоставки.Период,
СтрокаОплаты, «Предоплата», -Окр(СтрокаОплаты.СуммаРегл, 2), -Окр(СтрокаОплаты.СуммаУпр, 2));
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если СтрокаОтгрузкиПоставки.Сумма = 0 Тогда
Индексы.ИндексОтгрузкиПоставки = Индексы.ИндексОтгрузкиПоставки + 1;
Если СтрокаОтгрузкиПоставки.СуммаРегл <> 0 ИЛИ СтрокаОтгрузкиПоставки.СуммаУпр <> 0 Тогда
ДобавитьЗаписьПереоценки(ГлобальныеПеременные, ТаблицаРасчетовПоСрокам, НачалоДня(СтрокаОплаты.Период),
СтрокаОтгрузкиПоставки, «Долг», -Окр(СтрокаОтгрузкиПоставки.СуммаРегл, 2), -Окр(СтрокаОтгрузкиПоставки.СуммаУпр, 2));
КонецЕсли;
КонецЕсли;
//Отгрузка раньше оплаты.
Иначе
//Обычная оплата.
Если НЕ СтрокаОплаты.ЭтоКорректировка Тогда
//Добавляем строку прихода долга по отгрузке/поставке.
Если НЕ СтрокаОтгрузкиПоставки.ПриходДобавлен И СтрокаОтгрузкиПоставки.Сумма <> 0 Тогда
ПересчитатьСуммыЕслиЭтоКорректировка(ГлобальныеПеременные, СтрокаОтгрузкиПоставки);
ДобавитьПриход(ГлобальныеПеременные, ТаблицаРасчетовПоСрокам, СтрокаОтгрузкиПоставки, «ОтгрузкаПоставка»);
//Уточняется план только на сумму по заказу.
СкорректироватьПлановыеОплаты(ГлобальныеПеременные, ТаблицаПланОплат, СтрокаОтгрузкиПоставки, СтрокаОтгрузкиПоставки.Сумма — СтрокаОтгрузкиПоставки.КОплате, «УточнениеПлана»,ПланыОплат);
//Добавляются записи плана на всю сумму включая уточнение и сверхзаказа.
СкорректироватьПлановыеОплаты(ГлобальныеПеременные, ТаблицаПланОплат, СтрокаОтгрузкиПоставки, СтрокаОтгрузкиПоставки.Сумма, «ОтгрузкаПоставка», ПланыОплат);
КонецЕсли;
//Списываем план отгрузки если есть.
Если НЕ СтрокаОтгрузкиПоставки.ПланОтгрузокПоставокСписан Тогда
СписатьПланОтгрузкиПоставки(ГлобальныеПеременные, ТаблицаПланОтгрузокПоставок, СтрокаОтгрузкиПоставки, ПланыОтгрузокПоставок);
КонецЕсли;
Если СтрокаОтгрузкиПоставки.Сумма <> 0 Тогда
//Переоценка накладной до даты оплаты.
Если НужнаПереоценка Тогда
ПереоценитьДолг(ГлобальныеПеременные, ТаблицаРасчетовПоСрокам, СтрокаОтгрузкиПоставки, СтрокаОплаты);
КонецЕсли;
//Если расчетный документ накладная изменился, то сбрасываем служебные реквизиты распределения копеек.
Если ТекущийДокументОтгрузкиПоставки <> СтрокаОтгрузкиПоставки.РасчетныйДокумент Тогда
ДолгРаспределеноРегл = 0;
ДолгРаспределеноУпр = 0;
ТекущийДокументОтгрузкиПоставки = СтрокаОтгрузкиПоставки.РасчетныйДокумент;
КонецЕсли;
//Добавляем строку погашения задолженности.
НовСтр_Долг_Расход = ТаблицаРасчетовПоСрокам.Добавить();
НовСтр_Долг_Расход.ВидДвижения = ВидДвиженияНакопления.Расход;
НовСтр_Долг_Расход.ДокументРегистратор = СтрокаОплаты.Регистратор;
//Взаимозачет считаем взаимозачетом
Если СтрокаОплаты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВзаимозачетЗадолженности Тогда
НовСтр_Долг_Расход.ХозяйственнаяОперация = СтрокаОплаты.ХозяйственнаяОперация;
Иначе
НовСтр_Долг_Расход.ХозяйственнаяОперация = ХозяйственныеОперации[«ПогашениеЗадолженности»];
КонецЕсли;
НовСтр_Долг_Расход.ВалютаДокумента = СтрокаОплаты.ВалютаДокумента;
НовСтр_Долг_Расход.Период = СтрокаОплаты.Период;
НовСтр_Долг_Расход.ПорядокОпера
PaulBC
11.07.19
✎
10:15
(9) в областях #Область ПроверкаДатыЗапрета
Началось с одной из версий 2.4.8
Смотрел тестовую 2.4.9 — там вообще из этой процедуры проверку убрали.
rilovnikova
11.07.19
✎
10:43
(10) Эх, у меня нет такой области от слова совсем… может есть еще идеи?
mihalich979
11.07.19
✎
11:26
в люкальной копии более полная инфа по ошибке
по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(214)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(214)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Если СтрокаОплаты.ПорядокОперации < СтрокаОтгрузкиПоставки.ПорядокОперации
Кусок кода:
#Область РасчетФактическойЗадолженности
Пока Индексы.ИндексОплаты + Индексы.ИндексОтгрузкиПоставки < ЗаписейОбработать Цикл
Если Индексы.ИндексОплаты <= ЗаписейОплаты — 1 И Индексы.ИндексОтгрузкиПоставки <= ЗаписейОтгрузкиПоставки — 1 Тогда
СтрокаОплаты = РасчетыОплаты[Индексы.ИндексОплаты];
СтрокаОтгрузкиПоставки = РасчетыОтгрузкиПоставки[Индексы.ИндексОтгрузкиПоставки];
//Оплата раньше отгрузки.
Если СтрокаОплаты.ПорядокОперации < СтрокаОтгрузкиПоставки.ПорядокОперации
//В пределах регистратора (при расчетах по накладным) должен происходить зачет аванса.
при проведении
СтрокаОплаты.ПорядокОперации = 201907094235959330М00-000262
СтрокаОтгрузкиПоставки.ПорядокОперации = Null
mihalich979
11.07.19
✎
11:44
очень интересно.
есть строка Реализация клиенту от 28.09.2019 года
в которой не заполнен «ПорядокОперации» который сравнивается.
поэтому ошибка.
rilovnikova
11.07.19
✎
11:49
(13) Спасибо, буду тоже локально смотреть)
mihalich979
11.07.19
✎
11:59
в итоге ввели начальные остатки некорректно указали дату расчетного документа
должны были указать 28/09/2018
а указали 28/09/2019
вот что значит лезть в прошлый год.
mihalich979
11.07.19
✎
12:02
(1) отладка на сервере не включена вот и нет ошибки.
и там все очень мутно. все в облаке. связь с облаком через 3-е лицо.
Карочи проще локально отлаживать чем отладку включать
а локально все высветилось сразу.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
enches
Дата регистрации: 24.01.2014
Сообщений: 9
«Здравствуйте!<br>Необходимо в ПФР сделать корректировку за 1 квартал 2013 г. При записи документа происходит следующая ошибка:<br> <br>{Обработка.ПодготовкаДанныхПФР2010.МодульОбъекта(1259)}: Ошибка при вызове метода контекста (Записать)<br> ЭлементСоответствия.Значение.Записать(?(ЭлементСоответствия.Значение.Проведен,РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));<br>по причине:<br>Не удалось провести «Опись сведений АДВ-6-2 (до 2010 года — Ведомость уплаты АДВ-11) 00000000002 от 27.02.2014 0:00:00″!<br> <br>У пользователя полные права. Подскажите, пожалуйста, что лучше сделать?»
Тэра
Дата регистрации: 25.12.2008
Сообщений: 22390
релиз? И при записи какого документа это происходит?
enches
Дата регистрации: 24.01.2014
Сообщений: 9
Зарплата и Управление Персоналом, редакция 2.5 (2.5.78.1)<br>документ Опись сведений АДВ-6-2 (до 2010 года — Ведомость уплаты АДВ-11)
Sh_S
Дата регистрации: 02.03.2007
Сообщений: 7730
ну так а пачки, входящие в состав описи, проведены?
enches
Дата регистрации: 24.01.2014
Сообщений: 9
пачка не проводилась одна
enches
Дата регистрации: 24.01.2014
Сообщений: 9
Большое спасибо за советы!<br> <br>Проблема решена. А проблема была в следующем: в отправленной в пфр исходной описи пользователь смог исправить период, который был указан неверно, на верный период, а потом пытался создать корректировку с правильным периодом работы, т.е. с тем же периодом, который указан в исходных сведениях. В результате изменили период в исходных сведениях на тот период, который был указан при отправке в пфр (неверный), потом в корректировке поставили верный период.
Показывать по
10
20
40
сообщений
Читают тему:
Если при отладке COM-соединения Вы встретили ошибку «Ошибка при вызове метода контекста Записать», то есть вероятность, что Вы не получите в отладчике причину отказа в записи.
То есть, никакая строка кода не будет соответствовать данной ошибке. Например, такое происходит, если код записываемого элемента справочника не уникален. Такую ошибку можно увидеть лишь в пользовательском режиме, при попытке добавить запись справочника вручную.
Запись опубликована в рубрике Без рубрики с метками записать, отладка, ошибка. Добавьте в закладки постоянную ссылку.
- Главная
- —
- Форум
- —
- ТЕХПОДДЕРЖКА
- —
- ЭКСЕЛОН — Загрузка в 1С из EXCEL
- —
- Ошибка при вызове метода контекста (Записать)
Вчера заметил, что перестали обновляется цены, проверил выгрузку и обнаружил что часть номенклатуры не записывается. Номенклатура_СоздатьОбновить 020: {ВнешняяОбработка.APPLIX_RU_ЗагрузкаИзExcel_ЗМ.МодульОбъекта(70081)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульМенеджера(2911)}: Преобразование значения к типу Булево не может быть выполнено |
|
Ошибка при попытке обновить номенклатуру |
|
1С:Предприятие 8.3 (8.3.20.1674) Прикрепленные файлы |
|
Модуль создал номенклатуру, теперь ее невозможно открыть ТекстыЗапросов = Новый Массив; ИменаОбъектовМетаданных = Новый Массив; Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); Прикрепленные файлы |
|
пришлите ваш файл и скриншоты всех настроек колонок |
|
у нас загрузилось нормально доступ к базе дадите? попробуем на вашей базе отладкой посмотреть что не так |
|
Сергей Юданов Пользователь Сообщений: 23 |
#9
30.05.2022 15:03:02 Разобрались сами. На некоторые позиции номенклатуры в поле (Вид номенклатуры) было назначено не значение, а почему-то название категории в котором содержались значения. |
ПОСЛЕДНИЕ СООБЩЕНИЯ
Сейчас на форуме (гостей: 50)
Всего зарегистрированных пользователей: 2322
Приняло участие в обсуждении: 376
Всего тем: 846
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
Процедура ВыполнитьФормированиеПлан() //Состояние("Выборка данных (план)..."); Запр = Новый Запрос; Запр.Текст = "ВЫБРАТЬ | осиПЭОПриказ1.Наименование КАК НоменклатураПЭО, | осиПЭОПриказ1.Количество * осиПЭОПриказ1.Цена * 1000 КАК Сумма, | осиПЭОПриказ1.Подразделение КАК ПодразделениеПЭО, | ВЫБОР | КОГДА осиПЭОПриказ1.Пассив = &Строительство | ТОГДА &Счет106 | КОГДА осиПЭОПриказ1.Пассив = &Приобретение | ТОГДА &Счет107 | КОГДА осиПЭОПриказ1.Пассив = &ИнвестПроекты | ТОГДА &Счет108 | КОНЕЦ КАК СчетПЭО, | ВЫБОР | КОГДА осиПЭОПриказ1.Пассив = &Строительство | ТОГДА NULL | ИНАЧЕ осиПЭОПриказ1.Количество | КОНЕЦ КАК Количество |ИЗ | РегистрСведений.осиПЭОПриказ1 КАК осиПЭОПриказ1 |ГДЕ | осиПЭОПриказ1.Период МЕЖДУ &НачДата И &КонДата | И (осиПЭОПриказ1.Пассив = &Приобретение | ИЛИ осиПЭОПриказ1.Пассив = &Строительство ИЛИ осиПЭОПриказ1.Пассив = &ИнвестПроекты) | И осиПЭОПриказ1.Приоритет = 0"; Запр.УстановитьПараметр("НачДата", НачалоМесяца(Объект.ЗаПериод)); Запр.УстановитьПараметр("КонДата", КонецМесяца(Объект.ЗаПериод)); Запр.УстановитьПараметр("Приобретение", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "_Приобретение оборудования")); Запр.УстановитьПараметр("Строительство", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "Капитальное строительство")); Запр.УстановитьПараметр("ИнвестПроекты", ПолучитьЭлементСправочникаПоРеквизиту("осиПЭОПассив", "Наименование", "_Инвестиционные проекты")); Запр.УстановитьПараметр("Счет106", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "106")); Запр.УстановитьПараметр("Счет107", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "107")); Запр.УстановитьПараметр("Счет108", ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "108")); ТЗ=Запр.Выполнить().Выгрузить(); Выборка = Запр.Выполнить().Выбрать(); //Состояние("Формирование проводок (план)..."); Сценарий = ПолучитьЭлемент("Справочник", "Инт_Сценарии", "Наименование", "План"); ЦФО = ПолучитьЭлемент("Справочник", "Инт_ЦФО", "Наименование", "ЦЗ ""Оренбургские минералы"""); ВидСубконтоНоменклатураПЭО = ПолучитьЭлемент("ПланВидовХарактеристик", "ИНТ_Аналитика", "Код", "00000000042");//Номенклатура ПЭО ВидСубконтоПодразделенияПЭО = ПолучитьЭлемент("ПланВидовХарактеристик", "ИНТ_Аналитика", "Код", "00000000053");//Подразделения ПЭО Счет00 = ПолучитьЭлемент("ПланСчетов", "Инт_Управленческий2", "Код", "0"); Проформа = ПолучитьПроформу(Сценарий).ПолучитьОбъект(); ДвиженияУпр2 = Проформа.Движения.Инт_Управленческий2; ДвиженияУпр2.Очистить(); Пока Выборка.Следующий() Цикл Проводка = ДвиженияУпр2.Добавить(); Проводка.Период = КонецМесяца(Объект.ЗаПериод); Проводка.Содержание = "авт.загр."; Проводка.СчетДт = Выборка.СчетПЭО; Проводка.СчетКт = Счет00; Проводка.Сценарий = Сценарий; Проводка.Сумма = Выборка.Сумма; Проводка.ЦФОДт = ЦФО; Если Выборка.Количество<> 0 Тогда Проводка.КоличествоДт = Выборка.Количество; КонецЕсли; Проводка.Субконто1Дт= Выборка.НоменклатураПЭО; Проводка.Субконто2Дт = Выборка.ПодразделениеПЭО; КонецЦикла; ДвиженияУпр2.Записать(); //Состояние(); КонецПроцедуры |