PDA

Просмотр полной версии : Перезапись регистра накопления



Gererro
13.09.2017, 09:36
Суть такая, есть обработчик который создает Документ корректировки записей регистров.
Заполняются реквизиты формы и при нажатии Выполнить заводится этот самый документ корректировки. Если документ уже существует он перезаписывается без ведома пользователя. Что можно прописать что предоставить пользователю выбор - Перезаписывать документ или нет. Вариант РежимДиалогВопрос конечно можно. Но как его описать.

ДвиженияКорр = НовДокКоррЗап.Движения;
НовСтрРег = НовДокКоррЗап.ТаблицаРеги� �тровНакопления.Добавить();
НовСтрРег.Имя = "ВзаиморасчетыСКонтрагента ми";
НовСтрРег.Представление = "Взаиморасчеты с контрагентами";
//Получаем набор записей
ВзаиморасчетыСКонтрагента ми = ДвиженияКорр.Взаиморасчет� �СКонтрагентами;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВзаиморасчетыСКонтрагента миОбороты.Период,
| ВзаиморасчетыСКонтрагента миОбороты.ДоговорКонтраге� �та,
| ВзаиморасчетыСКонтрагента миОбороты.Сделка,
| ВзаиморасчетыСКонтрагента миОбороты.Организация,
| ВзаиморасчетыСКонтрагента миОбороты.Контрагент,
| ВзаиморасчетыСКонтрагента миОбороты.СуммаВзаиморасч� �товПриход,
| ВзаиморасчетыСКонтрагента миОбороты.СуммаУпрПриход,
| ВзаиморасчетыСКонтрагента миОбороты.Регистратор
|ИЗ
| РегистрНакопления.Взаимор� �счетыСКонтрагентами.Оборо ты(
| &НачалоПериода,
| &ОкончаниеПериода,
| Регистратор,
| Организация = &Организация
| И Контрагент = &Контрагент
| И ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыСКонтрагента миОбороты
|ГДЕ
| ВзаиморасчетыСКонтрагента миОбороты.СуммаВзаиморасч� �товПриход <> 0";

Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачалоПериода));
Запрос.УстановитьПараметр("ОкончаниеПериода", Новый Граница(КонецДня(Окончание Периода), ВидГраницы.Включая));
Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Строка = ВзаиморасчетыСКонтрагента ми.Добавить();
Строка.Период = КонецДня(Выборка.Период);
Строка.Регистратор = НовДокКоррЗап.Ссылка;
Строка.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Строка.Активность = Истина;
Строка.Сделка = Выборка.Сделка;
Строка.Организация = Выборка.Организация;
Строка.Контрагент = Выборка.Контрагент;
Строка.ДоговорКонтрагента = Выборка.ДоговорКонтрагент� �;
Строка.СуммаВзаиморасчето� � = Выборка.СуммаВзаиморасчет� �вПриход;
Строка.СуммаУпр = Выборка.СуммаУпрПриход;

КонецЦикла;

alexandr_ll
13.09.2017, 10:06
Так создается новый или перезаписывается существующий?

Gererro
13.09.2017, 10:43
Документ создается новый, но есть возможность выбора уже ранее созданного и вот как раз если документ уже создан и в нем есть записи из регистра накопления, то в момент перезаписи должен задаваться вопрос о его перезаписи.

alexandr_ll
13.09.2017, 11:13
Документ создается новый, но есть возможность выбора уже ранее созданного и вот как раз если документ уже создан и в нем есть записи из регистра накопления, то в момент перезаписи должен задаваться вопрос о его перезаписи.

Если выбирается существующий документ, тогда и ставить условие о перезаписи, а не в момент перезаписи. Если создается новый, то условие не нужно.