|
Обработка заполнения Регистра накопления в документе КЗР | ☑ | ||
---|---|---|---|---|
0
Eeelena
29.06.17
✎
12:38
|
Здравствуйте.
Делаю обработку заполнения табличной части документа Корректировка записей регистров", но почему то не могу получить ссылку на Объект. Она пустая. поэтому выходит ошибка Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Взаиморасчеты с контрагентами по документам расчетов) В переменной Корректировка почему то лежит строка с наименованием документа Корректировки. Подскажите, как мне получить ссылку на документ Корректировки записей регистров? Код в модуле объекта следующий: Процедура Инициализировать(Документ, Корректировка, выполнено) Экспорт Сообщить(Корректировка.Ссылка); ЭтотОбъект.Объект=Корректировка; Сообщить(ЭтотОбъект.Объект); ОбщФорма =ПолучитьФорму("Форма"); УсловиеОтбора = ОбщФорма.ОткрытьМодально(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Организация, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Контрагент, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДоговорКонтрагента, | СУММА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&НачДата, &КонДата, Авто, , Организация = &Организация) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты |ГДЕ | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Контрагент = &Контрагент | И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДоговорКонтрагента = &ДоговорКонтрагента | |СГРУППИРОВАТЬ ПО | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Контрагент, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДоговорКонтрагента, | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Организация"; Запрос.УстановитьПараметр("КонДата", КонецДня(Корректировка.Дата)); Запрос.УстановитьПараметр("НачДата", Дата(1, 1, 1) ); Запрос.УстановитьПараметр("Организация", Корректировка.Организация); Если УсловиеОтбора <> Неопределено Тогда Контрагент=УсловиеОтбора.Контрагент; Договор=УсловиеОтбора.Договор; КонецЕсли;; Запрос.УстановитьПараметр("Контрагент", Контрагент ); Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Новая = Корректировка.ТаблицаРегистровНакопления.Добавить(); Новая.Имя = "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов"; Новая.Представление = "Взаиморасчеты с контрагентами по документам расчетов"; НаборЗаписей = РегистрыНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.СоздатьНаборЗаписей(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(Корректировка.Ссылка); НоваяСтрока = НаборЗаписей.Добавить(); НоваяСтрока.Активность=Истина; НоваяСтрока.СуммаВзаиморасчетовКонечныйОстаток= ВыборкаДетальныеЗаписи.СуммаВзаиморасчетовКонечныйОстаток КонецЦикла; НаборЗаписей.Записать(); КонецПроцедуры |
|||
1
Cyberhawk
29.06.17
✎
12:39
|
Объект.Ссылка
|
|||
2
Eeelena
29.06.17
✎
12:41
|
(1) Пробовала, там пусто
|
|||
3
Cyberhawk
29.06.17
✎
12:42
|
(2) Значит документ еще не записан в ИБ. Устанвливай ему ссылку через соответствующий метод до записи
|
|||
4
Eeelena
29.06.17
✎
12:49
|
(3) Документ записала, вывела Сообщить(Объект.Ссылка);
ничего не вывел, сделала Сообщить(Корректировка.Ссылка); вывел наименование документа. Но почему то все равно ругается Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Взаиморасчеты с контрагентами по документам расчетов) Я делаю вот так Новая = Корректировка.ТаблицаРегистровНакопления.Добавить(); Новая.Имя = "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов"; Новая.Представление = "Взаиморасчеты с контрагентами по документам расчетов"; НаборЗаписей = РегистрыНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.СоздатьНаборЗаписей(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(Корректировка.Ссылка); НоваяСтрока = НаборЗаписей.Добавить(); НоваяСтрока.Активность=Истина; НоваяСтрока.СуммаВзаиморасчетовКонечныйОстаток= ВыборкаДетальныеЗаписи.СуммаВзаиморасчетовКонечныйОстаток КонецЦикла |
|||
5
Eeelena
29.06.17
✎
12:52
|
может каким то другим способом можно добавить записи регистра накопления ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов в документ КЗР?
|
|||
6
Гипервизор
29.06.17
✎
13:03
|
Зачем вам ссылка? Заполняйте через Движения.
|
|||
7
Cyberhawk
29.06.17
✎
13:06
|
У тебя в коде Корректировка.Ссылка, а Я не это вроде писал
|
|||
8
Гипервизор
29.06.17
✎
13:07
|
(6) как-то так:
ДвиженияВзаиморасчеты = Корректировка.Движения.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = ДвиженияВзаиморасчеты.Добавить(); ЗаполнитьЗначенияСвойств(Движение, ВыборкаДетальныеЗаписи); КонецЦикла; |
|||
9
Eeelena
29.06.17
✎
13:43
|
(8) спасибо большое!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |