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

1С:Предприятие ::

Метки: 

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

Я
   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 человек.
Рекламное место пустует