Ошибка при вызове метода контекста записать отправка прервана

0

mihalich979

10.07.19

11:47

при проведении поступления от клиента

вываливается ошибка:

{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1886)}: Ошибка при вызове метода контекста (Записать)

    Результат = Форма.Записать(ПараметрыЗаписи);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

{ОбщийМодуль.ПроведениеСерверУТ.Модуль(405)}: Ошибка при вызове метода контекста (Записать)

    Объект.Движения.Записать();

по причине:

Ошибка при выполнении обработчика — ‘ПриЗаписи’

что самое интересное

если снять галку «Проведено банком» то документ проводится, но естественно проводок не делает.

ставим обратно галку «проведено банком» и документ перестает проводиться и вываливается ошибка.

1

PiotrLoginov

10.07.19

12:23

других сообщений при ошибке нет? не верится, что вся информация заканчивается на строке «по причине:

Ошибка при выполнении обработчика — ‘ПриЗаписи'»

3

mihalich979

10.07.19

14:22

вечером сниму копию и локально по отлаживаю.

4

rilovnikova

10.07.19

22:14

Здравствуйте, получилось решить? У меня такая же проблема в ут, не могу найти, в чем косяк

5

palsergeich

10.07.19

22:23

Без отладки никак.

У меня валилось на корявой реализации нового механизма взаиморасчетов в ЕРП, только отладка, только хардкор

7

palsergeich

10.07.19

22:27

И останова по ошибке не ловит)

Они по ходу методолога поменяли, а вот сделать нормально — нишмогла

8

PaulBC

11.07.19

03:08

(0) валится на проверке даты запрета в ОперативныеВзаиморасчетыСервер.ЗаполнитьОперативныеВзаиморасчеты

У себя пока убрал проверку, в 2.4.9 вроде переделали.

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;

                            ТекущийДокументОтгрузкиПоставки = СтрокаОтгрузкиПоставки.РасчетныйДокумент;

                        КонецЕсли;

                        
                        //Добавляем строку погашения задолженности.

                        НовСтр_Долг_Расход = ТаблицаРасчетовПоСрокам.Добавить();

                        НовСтр_Долг_Расход.ВидДвижения                   = ВидДвиженияНакопления.Расход;

                        НовСтр_Долг_Расход.ДокументРегистратор           = СтрокаОплаты.Регистратор;

                        //Взаимозачет считаем взаимозачетом

                        Если СтрокаОплаты.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВзаимозачетЗадолженности Тогда

                            НовСтр_Долг_Расход.ХозяйственнаяОперация         = СтрокаОплаты.ХозяйственнаяОперация;

                        Иначе

                            НовСтр_Долг_Расход.ХозяйственнаяОперация         = ХозяйственныеОперации[«ПогашениеЗадолженности»];

                        КонецЕсли;

                        НовСтр_Долг_Расход.ВалютаДокумента               = СтрокаОплаты.ВалютаДокумента;

                        НовСтр_Долг_Расход.Период                        = СтрокаОплаты.Период;

                        НовСтр_Долг_Расход.ПорядокОпера

10

PaulBC

11.07.19

10:15

(9) в областях #Область ПроверкаДатыЗапрета

Началось с одной из версий 2.4.8

Смотрел тестовую 2.4.9 — там вообще из этой процедуры проверку убрали.

11

rilovnikova

11.07.19

10:43

(10) Эх, у меня нет такой области от слова совсем… может есть еще идеи?

12

mihalich979

11.07.19

11:26

в люкальной копии более полная инфа по ошибке

по причине:

Ошибка при выполнении обработчика — ‘ПриЗаписи’

по причине:

{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(214)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(214)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

            Если СтрокаОплаты.ПорядокОперации < СтрокаОтгрузкиПоставки.ПорядокОперации

Кусок кода:

#Область РасчетФактическойЗадолженности

    
    Пока Индексы.ИндексОплаты + Индексы.ИндексОтгрузкиПоставки < ЗаписейОбработать Цикл

        
        Если Индексы.ИндексОплаты <= ЗаписейОплаты — 1 И Индексы.ИндексОтгрузкиПоставки <= ЗаписейОтгрузкиПоставки — 1 Тогда

            
            СтрокаОплаты           = РасчетыОплаты[Индексы.ИндексОплаты];

            СтрокаОтгрузкиПоставки = РасчетыОтгрузкиПоставки[Индексы.ИндексОтгрузкиПоставки];

            
            //Оплата раньше отгрузки.

            Если СтрокаОплаты.ПорядокОперации < СтрокаОтгрузкиПоставки.ПорядокОперации

                //В пределах регистратора (при расчетах по накладным) должен происходить зачет аванса.

при проведении

СтрокаОплаты.ПорядокОперации = 201907094235959330М00-000262

СтрокаОтгрузкиПоставки.ПорядокОперации = Null

13

mihalich979

11.07.19

11:44

очень интересно.

есть строка Реализация клиенту от 28.09.2019 года

в которой не заполнен «ПорядокОперации» который сравнивается.

поэтому ошибка.

14

rilovnikova

11.07.19

11:49

(13) Спасибо, буду тоже локально смотреть)

15

mihalich979

11.07.19

11:59

в итоге ввели начальные остатки некорректно указали дату расчетного документа

должны были указать 28/09/2018

а указали 28/09/2019

вот что значит лезть в прошлый год.

16

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
  •  — 
  • Ошибка при вызове метода контекста (Записать)
 

Вчера заметил, что перестали обновляется цены, проверил выгрузку и обнаружил что часть номенклатуры не записывается.
Возможно это как то связано с переходом на 1с 11.5
Сегодня обновил модуль проблема осталась

Номенклатура_СоздатьОбновить 020: {ВнешняяОбработка.APPLIX_RU_ЗагрузкаИзExcel_ЗМ.МодульОбъекта(70081)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {Справочник.Номенклатура.МодульМенеджера(2911)}: Преобразование значения к типу Булево не может быть выполнено

 

Ошибка при попытке обновить номенклатуру

 

1С:Предприятие 8.3 (8.3.20.1674)
Управление торговлей, редакция 11 (11.5.7.336)
модуль загрузки 16.5.8

Прикрепленные файлы

 

Модуль создал номенклатуру, теперь ее невозможно открыть

ТекстыЗапросов = Новый Массив;
ПараметрыЗапроса = Новый Структура;

ИменаОбъектовМетаданных = Новый Массив;

Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл
Тип = СсылкиПоТипу.Ключ;
ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
Если ОбъектМетаданных = Неопределено Тогда
ВызватьИсключение
НСтр(«ru = ‘Неверный первый параметр Ссылки в функции ОбщегоНазначения.ЗначенияРеквизитовОбъектов:
          |- Значения массива должны быть ссылками'»);
КонецЕсли;

ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных);

Прикрепленные файлы

 

пришлите ваш файл и скриншоты всех настроек колонок

 
 
 

у нас загрузилось нормально

доступ к базе дадите? попробуем на вашей базе отладкой посмотреть что не так

 

Сергей Юданов

Пользователь

Сообщений: 23
Регистрация: 09.04.2019

#9


0
 

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.Записать();
            //Состояние();
    
КонецПроцедуры

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста значениевреквизитформы дерево значений
  • Ошибка при вызове метода контекста записать 1с отчетность
  • Ошибка при вызове метода контекста записать вывод запрещен
  • Ошибка при вызове метода контекста занять сканер
  • Ошибка при вызове метода контекста значениевданныеформы