|
При заполнении ЗНРС реквизитами ЗП ошибка в ОбновленииОтображения | ☑ | ||
---|---|---|---|---|
0
skupidom5
19.09.17
✎
09:17
|
Управление производственным предприятием, редакция 1.2 (1.2.26.1)
Добавил процедуру "Заполнить по Заказу поставщику" вот текст процедуры: Процедура ПереЗаполнитьЗаявкуПоЗаказуПоставщику(ПеремОснование)Экспорт Если ТипЗнч(ПеремОснование) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда ДатаРасхода=ПеремОснование.ДатаОплаты; ДокументОснование = ПеремОснование; ЦФО = ПеремОснование.Подразделение; СтруктураКурсаОснования = МодульВалютногоУчета.ПолучитьКурсВалюты(ПеремОснование.ВалютаДокумента, ПеремОснование.Дата); КурсОснования=СтруктураКурсаОснования.Курс; КратностьОснования=СтруктураКурсаОснования.Кратность; ВидОперации = Перечисления.ВидыОперацийЗаявкиНаРасходование.ОплатаПоставщику; Если ЗначениеЗаполнено(ПеремОснование.СтруктурнаяЕдиница) Тогда Если ТипЗнч(ПеремОснование.СтруктурнаяЕдиница) = Тип("СправочникСсылка.Кассы") Тогда ФормаОплаты = Перечисления.ВидыДенежныхСредств.Наличные; Иначе ФормаОплаты = Перечисления.ВидыДенежныхСредств.Безналичные; КонецЕсли; БанковскийСчетКасса = ПеремОснование.СтруктурнаяЕдиница; Иначе ФормаОплаты = Перечисления.ВидыДенежныхСредств.Наличные; БанковскийСчетКасса = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяКасса"); КонецЕсли; Если ЗначениеЗаполнено(БанковскийСчетКасса) Тогда ВалютаДокумента=БанковскийСчетКасса.ВалютаДенежныхСредств; Иначе ВалютаДокумента=мВалютаРегламентированногоУчета; КонецЕсли; СтруктураКурсаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДокумента,КонецДня(ДатаРасхода)); КурсДокумента = СтруктураКурсаДокумента.Курс; КратностьДокумента = СтруктураКурсаДокумента.Кратность; РасшифровкаПлатежа.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиЗаказа.СтатьяДвиженияДенежныхСредств, | СУММА(ОстаткиЗаказа.Сумма) КАК Сумма, | ОстаткиЗаказа.ДоговорКонтрагента, | ОстаткиЗаказа.Номенклатура, | СУММА(ОстаткиЗаказа.Количество) КАК Количество |ИЗ | (ВЫБРАТЬ | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка) | ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | КОНЕЦ КАК СтатьяДвиженияДенежныхСредств, | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС | ТОГДА ЗаказПоставщикуОборудование.Сумма | ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС | КОНЕЦ КАК Сумма, | ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента, | ЗаказПоставщикуОборудование.Номенклатура КАК Номенклатура, | ЗаказПоставщикуОборудование.Количество КАК Количество | ИЗ | Документ.ЗаказПоставщику.Оборудование КАК ЗаказПоставщикуОборудование | ГДЕ | ЗаказПоставщикуОборудование.Ссылка = &Основание | И ЗаказПоставщикуОборудование.Ссылка.ВидОперации = &ВидОперацииОборудование | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка) | ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | КОНЕЦ, | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС | ТОГДА ЗаказПоставщикуОборудование.Сумма | ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС | КОНЕЦ, | ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента, | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка), | 0 | ИЗ | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуОборудование | ГДЕ | ЗаказПоставщикуОборудование.Ссылка = &Основание | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.рар_ВидРабот = ЗНАЧЕНИЕ(Справочник.рар_ВидыРабот.ПустаяСсылка) | ТОГДА ЗаказПоставщикуОборудование.Ссылка.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | ИНАЧЕ ЗаказПоставщикуОборудование.рар_ВидРабот.СтатьяДвиженияДенежныхСредств | КОНЕЦ, | ВЫБОР | КОГДА ЗаказПоставщикуОборудование.Ссылка.СуммаВключаетНДС | ТОГДА ЗаказПоставщикуОборудование.Сумма | ИНАЧЕ ЗаказПоставщикуОборудование.Сумма + ЗаказПоставщикуОборудование.СуммаНДС | КОНЕЦ, | ЗаказПоставщикуОборудование.Ссылка.ДоговорКонтрагента, | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка), | 0 | ИЗ | Документ.ЗаказПоставщику.Услуги КАК ЗаказПоставщикуОборудование | ГДЕ | ЗаказПоставщикуОборудование.Ссылка = &Основание | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ЗаявкиНаРасходованиеСредствОбороты.СтатьяДвиженияДенежныхСредств, | -ЗаявкиНаРасходованиеСредствОбороты.СуммаВзаиморасчетовОборот, | ЗаявкиНаРасходованиеСредствОбороты.ДоговорКонтрагента, | ЗаявкиНаРасходованиеСредствОбороты.рар_Номенклатура, | -ЗаявкиНаРасходованиеСредствОбороты.рар_КоличествоОборот | ИЗ | РегистрНакопления.ЗаявкиНаРасходованиеСредств.Обороты(, , Период, Сделка = &Основание) КАК ЗаявкиНаРасходованиеСредствОбороты | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ЗаявкиНаРасходованиеСредствОбороты.СтатьяДвиженияДенежныхСредств, | -ЗаявкиНаРасходованиеСредствОбороты.СуммаВзаиморасчетовОборот, | ЗаявкиНаРасходованиеСредствОбороты.ДоговорКонтрагента, | ЗаявкиНаРасходованиеСредствОбороты.рар_Номенклатура, | -ЗаявкиНаРасходованиеСредствОбороты.рар_КоличествоОборот | ИЗ | РегистрНакопления.рар_ЗаявкиНаРасходованиеСредствНеутвержденные.Обороты(, , Период, Сделка = &Основание) КАК ЗаявкиНаРасходованиеСредствОбороты) КАК ОстаткиЗаказа | |СГРУППИРОВАТЬ ПО | ОстаткиЗаказа.ДоговорКонтрагента, | ОстаткиЗаказа.СтатьяДвиженияДенежныхСредств, | ОстаткиЗаказа.Номенклатура"; Запрос.УстановитьПараметр("Основание",ПеремОснование); Запрос.УстановитьПараметр("ВидОперацииОборудование",Перечисления.ВидыОперацийЗаказПоставщику.Оборудование); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); КэшЗаменыСтатей=Новый Соответствие; Пока Выборка.Следующий() Цикл // СтрокаПлатеж = РасшифровкаПлатежа.Добавить(); СтрокаПлатеж.ДоговорКонтрагента = Выборка.ДоговорКонтрагента; СтатьяДДС=КэшЗаменыСтатей[Выборка.СтатьяДвиженияДенежныхСредств]; Если СтатьяДДС=Неопределено Тогда СтатьяДДС=ЗаменитьСтатьюДДС(Выборка.СтатьяДвиженияДенежныхСредств); КэшЗаменыСтатей.Вставить(Выборка.СтатьяДвиженияДенежныхСредств,СтатьяДДС); КонецЕсли; СтрокаПлатеж.СтатьяДвиженияДенежныхСредств = СтатьяДДС; СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов, ДатаРасхода); СтрокаПлатеж.КурсВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Курс; СтрокаПлатеж.КратностьВзаиморасчетов = СтруктураКурсаВзаиморасчетов.Кратность; СтрокаПлатеж.Сделка = ПеремОснование; СтрокаПлатеж.рар_Номенклатура = Выборка.Номенклатура; СтрокаПлатеж.рар_Количество = Выборка.Количество; СтрокаПлатеж.Проект = ЦФО.ОсновнойПроект; СтрокаПлатеж.СуммаВзаиморасчетов = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(Выборка.Сумма, ПеремОснование.ВалютаДокумента, ПеремОснование.ДоговорКонтрагента.ВалютаВзаиморасчетов, КурсОснования, ПеремОснование.КурсВзаиморасчетов, КратностьОснования, ПеремОснование.КратностьВзаиморасчетов); // СтрокаПлатеж.СуммаПлатежа = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаПлатеж.СуммаВзаиморасчетов, СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов, ВалютаДокумента, СтрокаПлатеж.КурсВзаиморасчетов, КурсДокумента, СтрокаПлатеж.КратностьВзаиморасчетов, КратностьДокумента); КонецЦикла; СуммаДокумента = РасшифровкаПлатежа.Итог("СуммаВзаиморасчетов"); КонецЕсли; КонецПроцедуры |
|||
1
skupidom5
19.09.17
✎
09:20
|
заполняется из реквизитов ЗП основания(есть реквизит на форе ЗНРС). При заполнении возникает ошибка в процедуре ОбновлениеОтображения():
{Документ.ЗаявкаНаРасходованиеСредств.Форма.ФормаДокумента.Форма(1093)}: Ошибка при получении значения атрибута контекста (ДоговорКонтрагента) ВалютаВзаиморасчетовПоДоговору = СтрокаПлатеж.ДоговорКонтрагента.ВалютаВзаиморасчетов; по причине: Выполнение операции невозможно, так как строка была удалена. |
|||
2
Lexey_
19.09.17
✎
09:21
|
(1) "Выполнение операции невозможно, так как строка была удалена." какие слова не понятны?
|
|||
3
skupidom5
19.09.17
✎
09:21
|
СтрокаПлатеж видит как строку тч ЗНРС.
|
|||
4
skupidom5
19.09.17
✎
09:22
|
как исправить ошибку?
|
|||
5
skupidom5
19.09.17
✎
09:23
|
пробывал в процедуре заполнения на основании ЗП перезаписать ЗНРС и в ОбновлениеОтображения - получитьОбъект и Прочитать() - не помогает, при это процедура заполнения отрабатывает,но с этой ошибкой
|
|||
6
Lexey_
19.09.17
✎
09:24
|
(4) сделать чтобы в СтрокаПлатеж была существующая строка, а не удаленная
|
|||
7
skupidom5
19.09.17
✎
09:31
|
удалить строку?
|
|||
8
Lexey_
19.09.17
✎
09:33
|
(7)она ж уже удалена
|
|||
9
skupidom5
19.09.17
✎
09:36
|
что нужно сделать?
|
|||
10
Lexey_
19.09.17
✎
09:40
|
(9) еще раз: ответ в (6), ошибка будет до тех пор, пока в СтрокаПлатеж находится несуществующая строка, как только там будет существующая, ошибки не будет
|
|||
11
Йохохо
19.09.17
✎
09:47
|
(10) типа при обращении через точку происходит чтение из базы а строка не записана? Выборка.ДоговорКонтрагента.ВалютаВзаиморасчетов или добавить в запрос?
|
|||
12
Lexey_
19.09.17
✎
09:50
|
(11) обращение к ссылке на удаленную строку
|
|||
13
skupidom5
19.09.17
✎
09:51
|
все реквизиты строки при просмотре отладчиком =
СтрокаПлатеж ДокументТабличнаяЧастьСтрока.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа ДоговорКонтрагента Выполнение операции невозможно, так как строка была удалена. ДокументРасчетовСКонтрагентом Выполнение операции невозможно, так как строка была удалена. КратностьВзаиморасчетов Выполнение операции невозможно, так как строка была удалена. |
|||
14
skupidom5
19.09.17
✎
09:52
|
как исправить?
|
|||
15
Lexey_
19.09.17
✎
09:52
|
(14) читал (6)?
|
|||
16
Lexey_
19.09.17
✎
09:53
|
(13) сколько еще раз повторить фразу "Выполнение операции невозможно, так как строка была удалена"?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |