Запись в РС

1. user1202776 15.07.19 13:02 Сейчас в теме
При проведении документа должна открываться форма, в котором нужно заполнить причину изменения. И чтобы эта причина попадала в РС.
Вопрос:Можно сделать так, чтобы при начале записи,запись прерывалась и после закрытия формы документ записывалась, чтобы в РС попадала причина изменения?Если можно,приведите пожалуйста пример.
Сейчас во время открытия формы осуществляется запись в РС.
//1
ТекущиеДанные = ЭлементыФормы.Товары.ТекущиеДанные;
Форма = ПолучитьФорму("РегистрСведений.ЛогРедактированияДокументов.Форма.Возврат", , ЭлементыФормы.Товары);
Форма.КлючУникальности = ТекущиеДанные.ИдентификаторСтроки;
		
Форма.ТабТовары =ДокументОбъект.Товары.Выгрузить();
Форма.ТабТовары.Колонки.Добавить("ПричинаИзменения", Новый ОписаниеТипов("СправочникСсылка.AV_ПричиныУрезанияНоменклатуры"));
Форма.ЭлементыФормы.ТабТовары.СоздатьКолонки();
Топ=Форма.ТабТовары;
Форма.Открыть();
	
НаборЗаписей = РегистрыСведений.ЛогРедактированияДокументов.СоздатьНаборЗаписей();	
	Для Каждого Строка Из Форма.ТабТовары Цикл
		НоваяЗапись = НаборЗаписей.Добавить();
		НоваяЗапись.Документ =Ссылка;
		НоваяЗапись.Было =Строка.Количество;
		НоваяЗапись.Стало =Строка.Количество;
		НоваяЗапись.Остаток =Выборка.Остаток;
		НоваяЗапись.Резерв =Выборка.Резерв;
		НоваяЗапись.ПричинаИзменения =Строка.ПричинаИзменения;
		НоваяЗапись.Товар =Строка.Номенклатура;
		НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
		НоваяЗапись.Период =ТекущаяДата();
		НаборЗаписей.Записать(Ложь);
	КонецЦикла;

КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
8. user1202776 15.07.19 16:51 Сейчас в теме
(7) решил этот вопрос.Вместо Форма.Открыть(), сделал Форма.ОткрытьМодально()
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Stref75 15.07.19 13:14 Сейчас в теме
(1) а что мешает разместить реквизит на форме самого документа и там указывать причину изменения. Если причина не указана - отказ проведения с выдачей сообщения.
4. user1202776 15.07.19 13:16 Сейчас в теме
(3)нужно чтобы на форме выбиралась
2. platonov.e 160 15.07.19 13:14 Сейчас в теме
А почему бы причину изменения не писать перед проведением?
5. user1202776 15.07.19 13:17 Сейчас в теме
(2) не совсем понял вас.Где писать?
6. platonov.e 160 15.07.19 13:28 Сейчас в теме
(5) так на форме и писать, как сказал (3). Или вы программно изменяете документ?
7. Stref75 15.07.19 13:30 Сейчас в теме
ну или так
В модуле формы на клиенте ПередЗаписью
Если НЕ ЗначениеЗаполнено(РеквизитПричины) Тогда
Оповещение = Новый ОписаниеОповещения("ЗавершитьПолучениеПричины", ЭтаФорма);
        ОткрытьФорму("Документ.КакаяТоТамФормаУказанияПричины",,,,,, Оповещение);	
КонецЕсли;

&НаКлиенте
Процедура ЗавершитьПолучениеПричины(Результат, ДополнительныеПараметры)
// тут закидываете полученное значение в реквизит формы. ну и далее в обработчике проведения используете заполненный реквизит
КонецПроцедуры	
Показать


в форме где предполагается указывать причину сделаете какую-то свою кнопку и на нее повесите Закрыть(ПараметрыЗакрытия)
вот эти параметры закрытия вам и прилетят в процедуру ЗавершитьПолучениеПричины как параметр Результат

Хотя не уверен, что пока форма будет открыта, обработчик ПередЗаписью будет ждать её закрытия
8. user1202776 15.07.19 16:51 Сейчас в теме
(7) решил этот вопрос.Вместо Форма.Открыть(), сделал Форма.ОткрытьМодально()
9. Stref75 16.07.19 05:38 Сейчас в теме
(8) не лучшее решение
Зачем надо отказываться от модальности

1С:Предприятие использует модальные окна в тех ситуациях, когда от пользователя требуется ввод информации, без которой невозможно дальнейшее выполнение алгоритма. При этом полностью блокируется весь остальной интерфейс программы, а исполнение программного кода останавливается до тех пор, пока пользователь не закроет модальное окно. С появлением веб-клиента и с переходом 1С:Предприятия на мобильные платформы, модальные окна оказались источником большого количества неудобств и проблем, зачастую неразрешимых.

Как правило "десктопные" браузеры лучше или хуже, но поддерживают модальные окна и открывают их в новом окне браузера как "всплывающее окно". Но из-за того, что технология всплывающих окон массово используется в Интернете для размещения рекламы, практически во всех браузерах стандартно отключен показ всплывающих окон. В подавляющем большинстве случаев без изменения этой настройки браузера работа веб-клиента становится невозможной.

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

В такой ситуации вариант работы интерфейса 1С:Предприятия без использования модальных окон снимает все перечисленные выше проблемы. При этом не происходит отказа от функциональности, которая обеспечивалась ранее модальными окнами. Но эта функциональность реализуется другими технологиями, которые не препятствуют работе 1С:Предприятия в браузерах. В новом режиме работы интерфейса окно, которое раньше было бы модальным, рисуется в пределах родительского окна, и точно так же блокирует весь остальной интерфейс веб-клиента. В результате:

Не происходит открытия новых окон браузера, что повышает производительность и стабильность веб-клиента;
Во многих случаях дополнительная настройка браузера становится ненужной, так как 1С:Предприятие больше не использует всплывающие окна;
Любая конфигурация, используя веб-клиент, может работать на iPad.
Показать


Вместо ОткрытьМодально() пробуйте ОткрытьФорму() используя последний параметр РежимОткрытияФормы.БлокироватьОкноВладельца
10. user1202776 16.07.19 09:38 Сейчас в теме
(9) выдает ошибку
{Документ.ВозвратТоваровОтПокупателя.Форма.ФормаДокумента.Форма(1441,80)}: Переменная не определена (РежимОткрытияФормы)
ОткрытьФорму("РегистрСведений.ЛогРедактированияДокументов.Форма.Возврат",,,,,,,<<?>>РежимОткрытияФормы.БлокироватьОкноВладельца (Проверка: Толстый клиент (обычное приложение))
11. Stref75 16.07.19 12:19 Сейчас в теме
(10) РежимОткрытияОкнаФормы (см. синтакс-помощник)
12. Stref75 16.07.19 12:20 Сейчас в теме
(10) а зачем форма регистра сведений открывается?
13. user1202776 16.07.19 13:25 Сейчас в теме
(12)формы создал в РС , в котором записываются данные, чтобы лишний раз не создавать общие формы
14. Stref75 17.07.19 05:50 Сейчас в теме
(13) так а зачем вообще нужна эта дополнительная форма?
15. user1202776 17.07.19 08:58 Сейчас в теме
(14)для того, чтобы записывать причину изменения в документе.В саму форму документа нельзя добавлять эту причину
16. Stref75 17.07.19 09:08 Сейчас в теме
(15) почему нельзя добавить в форму документа? какая конкретно причина, в чем состоит запрет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот