Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

При заполнении ЗНРС реквизитами ЗП ошибка в ОбновленииОтображения

При заполнении ЗНРС реквизитами ЗП ошибка в ОбновленииОтображения
Я
   skupidom5
 
19.09.17 - 09:17
Управление производственным предприятием, редакция 1.2 (1.2.26.1)
Добавил процедуру "Заполнить по Заказу поставщику"
вот текст процедуры:
Процедура ПереЗаполнитьЗаявкуПоЗаказуПоставщику(ПеремОснование)Экспорт
    
    Если ТипЗнч(ПеремОснование) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда

    ДатаРасхода=ПеремОснование.ДатаОплаты;
    ДокументОснование = ПеремОснование;
    ЦФО = ПеремОснование.Подразделение;
    
    СтруктураКурсаОснования = МодульВалютногоУчета.ПолучитьКурсВалюты(ПеремОснование.ВалютаДокумента, ПеремОснование.Дата);
    КурсОснования=СтруктураКурсаОснования.Курс;
    КратностьОснования=СтруктураКурсаОснования.Кратность;
    
    ВидОперации    = Перечисления.ВидыОперацийЗаявкиНаРасходование.ОплатаПоставщику;
    
    Если ЗначениеЗаполнено(ПеремОснование.СтруктурнаяЕдиница) Тогда
        
        Если ТипЗнч(ПеремОснование.СтруктурнаяЕдиница) = Тип("СправочникСсылка.Кассы") Тогда
            ФормаОплаты = Перечисления.ВидыДенежныхСредств.Наличные;
        Иначе
            ФормаОплаты = Перечисления.ВидыДенежныхСредств.Безналичные;
        КонецЕсли;
        
        БанковскийСчетКасса = ПеремОснование.СтруктурнаяЕдиница;
    Иначе
        ФормаОплаты = Перечисления.ВидыДенежныхСредств.Наличные;
        БанковскийСчетКасса = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяКасса");
    КонецЕсли;
    
    Если ЗначениеЗаполнено(БанковскийСчетКасса) Тогда
        ВалютаДокумента=БанковскийСчетКасса.ВалютаДенежныхСредств;
    Иначе
        ВалютаДокумента=мВалютаРегламентированногоУчета;
    КонецЕсли;
    
    СтруктураКурсаДокумента      = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,КонецДня(ДатаРасхода));
    КурсДокумента                = СтруктураКурсаДокумента.Курс;
    КратностьДокумента           = СтруктураКурсаДокумента.Кратность;
    
    
    РасшифровкаПлатежа.Очистить();
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОстаткиЗаказа.СтатьяДвиженияДенежныхСредств,
                   |    СУММА(ОстаткиЗаказа.Сумма) КАК Сумма,
                   |    ОстаткиЗаказа.ДоговорКонтрагента,
                   |    ОстаткиЗаказа.Номенклатура,
                   |    СУММА(ОстаткиЗаказа.Количество) КАК Количество
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка)
                   |                ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |        КОНЕЦ КАК СтатьяДвиженияДенежныхСредств,
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС
                   |                ТОГДА ЗаказПоставщикуОборудование.Сумма
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС
                   |        КОНЕЦ КАК Сумма,
                   |        ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
                   |        ЗаказПоставщикуОборудование.Номенклатура КАК Номенклатура,
                   |        ЗаказПоставщикуОборудование.Количество КАК Количество
                   |    ИЗ
                   |        Документ.ЗаказПоставщику.Оборудование КАК ЗаказПоставщикуОборудование
                   |    ГДЕ
                   |        ЗаказПоставщикуОборудование.Ссылка = &Основание
                   |        И ЗаказПоставщикуОборудование.Ссылка.ВидОперации = &ВидОперацииОборудование
                   |    
                   |    ОБЪЕДИНИТЬ ВСЕ
                   |    
                   |    ВЫБРАТЬ
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка)
                   |                ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |        КОНЕЦ,
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС
                   |                ТОГДА ЗаказПоставщикуОборудование.Сумма
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС
                   |        КОНЕЦ,
                   |        ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента,
                   |        ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка),
                   |        0
                   |    ИЗ
                   |        Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуОборудование
                   |    ГДЕ
                   |        ЗаказПоставщикуОборудование.Ссылка = &Основание
                   |    
                   |    ОБЪЕДИНИТЬ ВСЕ
                   |    
                   |    ВЫБРАТЬ
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка)
                   |                ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств
                   |        КОНЕЦ,
                   |        ВЫБОР
                   |            КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС
                   |                ТОГДА ЗаказПоставщикуОборудование.Сумма
                   |            ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС
                   |        КОНЕЦ,
                   |        ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента,
                   |        ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка),
                   |        0
                   |    ИЗ
                   |        Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщикуОборудование
                   |    ГДЕ
                   |        ЗаказПоставщикуОборудование.Ссылка = &Основание
                   |    
                   |    ОБЪЕДИНИТЬ ВСЕ
                   |    
                   |    ВЫБРАТЬ
                   |        ЗаявкиНаРасходованиеСредствОбороты.СтатьяДвиженияДенежныхСредств,
                   |        -ЗаявкиНаРасходованиеСредствОбороты.СуммаВзаиморасчетовОборот,
                   |        ЗаявкиНаРасходованиеСредствОбороты.ДоговорКонтрагента,
                   |        ЗаявкиНаРасходованиеСредствОбороты.рар_Номенклатура,
                   |        -ЗаявкиНаРасходованиеСредствОбороты.рар_КоличествоОборот
                   |    ИЗ
                   |        РегистрНакопления.ЗаявкиНаРасходованиеСредств.Обороты(, , Период, Сделка = &Основание) КАК ЗаявкиНаРасходованиеСредствОбороты
                   |    
                   |    ОБЪЕДИНИТЬ ВСЕ
                   |    
                   |    ВЫБРАТЬ
                   |        ЗаявкиНаРасходованиеСредствОбороты.СтатьяДвиженияДенежныхСредств,
                   |        -ЗаявкиНаРасходованиеСредствОбороты.СуммаВзаиморасчетовОборот,
                   |        ЗаявкиНаРасходованиеСредствОбороты.ДоговорКонтрагента,
                   |        ЗаявкиНаРасходованиеСредствОбороты.рар_Номенклатура,
                   |        -ЗаявкиНаРасходованиеСредствОбороты.рар_КоличествоОборот
                   |    ИЗ
                   |        РегистрНакопления.рар_ЗаявкиНаРасходованиеСредствНеутвержденные.Обороты(, , Период, Сделка = &Основание) КАК ЗаявкиНаРасходованиеСредствОбороты) КАК ОстаткиЗаказа
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ОстаткиЗаказа.ДоговорКонтрагента,
                   |    ОстаткиЗаказа.СтатьяДвиженияДенежныхСредств,
                   |    ОстаткиЗаказа.Номенклатура";
    
    Запрос.УстановитьПараметр("Основание",ПеремОснование);
    Запрос.УстановитьПараметр("ВидОперацииОборудование",Перечисления.ВидыОперацийЗаказПоставщику.Оборудование);
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    КэшЗаменыСтатей=Новый Соответствие;
    
    Пока Выборка.Следующий() Цикл
        //

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

        
        СтрокаПлатеж.СуммаПлатежа = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаПлатеж.СуммаВзаиморасчетов,
                                    СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов, 
                                    ВалютаДокумента,
                                    СтрокаПлатеж.КурсВзаиморасчетов, КурсДокумента,
                                    СтрокаПлатеж.КратностьВзаиморасчетов, КратностьДокумента);
        
    КонецЦикла;
    СуммаДокумента      = РасшифровкаПлатежа.Итог("СуммаВзаиморасчетов");
               
КонецЕсли;

КонецПроцедуры
 
 
   skupidom5
 
1 - 19.09.17 - 09:20
заполняется из реквизитов ЗП основания(есть реквизит на форе ЗНРС). При заполнении возникает ошибка в процедуре ОбновлениеОтображения():
{Документ.ЗаявкаНаРасходованиеСредств.Форма.ФормаДокумента.Форма(1093)}: Ошибка при получении значения атрибута контекста (ДоговорКонтрагента)
    ВалютаВзаиморасчетовПоДоговору = СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов;
по причине:
Выполнение операции невозможно, так как строка была удалена.
   Lexey_
 
2 - 19.09.17 - 09:21
(1) "Выполнение операции невозможно, так как строка была удалена." какие слова не понятны?
   skupidom5
 
3 - 19.09.17 - 09:21
СтрокаПлатеж видит как строку тч ЗНРС.
   skupidom5
 
4 - 19.09.17 - 09:22
как исправить ошибку?
   skupidom5
 
5 - 19.09.17 - 09:23
пробывал в процедуре заполнения на основании ЗП перезаписать ЗНРС и в ОбновлениеОтображения - получитьОбъект и Прочитать() - не помогает, при это процедура заполнения отрабатывает,но с этой ошибкой
   Lexey_
 
6 - 19.09.17 - 09:24
(4) сделать чтобы в СтрокаПлатеж была существующая строка, а не удаленная
   skupidom5
 
7 - 19.09.17 - 09:31
удалить строку?
   Lexey_
 
8 - 19.09.17 - 09:33
(7)она ж уже удалена
   skupidom5
 
9 - 19.09.17 - 09:36
что нужно сделать?
   Lexey_
 
10 - 19.09.17 - 09:40
(9) еще раз: ответ в (6), ошибка будет до тех пор, пока в СтрокаПлатеж находится несуществующая строка, как только там будет существующая, ошибки не будет
 
 Рекламное место пустует
   Йохохо
 
11 - 19.09.17 - 09:47
(10) типа при обращении через точку происходит чтение из базы а строка не записана? Выборка.ДоговорКонтрагента.ВалютаВзаиморасчетов или добавить в запрос?
   Lexey_
 
12 - 19.09.17 - 09:50
(11) обращение к ссылке на удаленную строку
   skupidom5
 
13 - 19.09.17 - 09:51
все реквизиты строки  при просмотре отладчиком =
СтрокаПлатеж    ДокументТабличнаяЧастьСтрока.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа
ДоговорКонтрагента    Выполнение операции невозможно, так как строка была удалена.
ДокументРасчетовСКонтрагентом    Выполнение операции невозможно, так как строка была удалена.
КратностьВзаиморасчетов    Выполнение операции невозможно, так как строка была удалена.
   skupidom5
 
14 - 19.09.17 - 09:52
как исправить?
   Lexey_
 
15 - 19.09.17 - 09:52
(14) читал (6)?
   Lexey_
 
16 - 19.09.17 - 09:53
(13) сколько еще раз повторить фразу "Выполнение операции невозможно, так как строка была удалена"?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует