Вопрос № 160589: <font color="red"><u><b>Как передать значение в форму открытого документа</b></u></font> <b>Здравструйте!</b>Такая проблема. Создана обработка для считывания штрих кода с платежного поручения.Считанный штрих код попадает в нужные графы в платеж...
Вопрос № 160.589
Как передать значение в форму открытого документа Здравструйте!Такая проблема. Создана обработка для считывания штрих кода с платежного поручения.Считанный штрих код попадает в нужные графы в платежке.Все вроде хорошо... НО допустим открыли обработку,считали штрих код,штрих код попал в нужные поля в платежке...НО я передумала сохранять документ,а документ как на зло все равно сохраняется не зависимо от того какую кнопку нажал на платежном поручении(Да/Нет).
Если без сканера заполняешь Да/Нет норм работает.Как только со сканером считаешь сразу что Да,что Нет документ по любому сохраняется...Может надо что-то дописать в обработке или в платежке на случай если передумал документ сохранять.
Приложение:
Отправлен: 16.02.2009, 09:24
Вопрос задала: Yla (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 5)
Если выполнили Док.Записать() то документ уже записан, еще до открытия формы.
Выход - передавайте строку "СтрокаИдент" в качестве параметра при открытии формы: ОткрытьФормуМодально(Док.ТекущийДокумент(),СтрокаИдент,0); После этого в модуле формы в процедуре ПриОткрытии() анализируйте значение Форма.Параметр и заполняйте документ переданными значениями.
Ответ отправил: AlexK407 (статус: 2-й класс)
Ответ отправлен: 16.02.2009, 09:33
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 243729 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Владимир Лазурко
Здравствуйте, Yla!
В Вашей процедуре документ создается, заполняется, потом записывается и показывается форма. На первый взгляд я вижу, что перед записью документа нужно задать вопрос о сохранении:
Код:
Если Вопрос("Сохранить новый документ? ("+Док+")", "Да+Нет")
= "Да" Тогда Док.Сохранить(); КонецЕсли;
Но вообще-то этот вопрос лучше задавать ДО создания документа - тогда экономятся системные ресурсы и не делается ненужная запись в БД. Как это сделать - вопросом или по кнопке определите сами. В моем Приложении Ваша процедура разбита на две - распознавание штрих-кода и запись документа.
Я предлагаю такую схему: 1. Обработка распознает штрих-код. 2. Выводит все переменные (мо
жно текстовыми метками, можно опереатором Сообщить() и т.д., хоть в таблицу - здесь на Ваше усмотрение). 3. Пользователь кнопочкой "Сформировать документ" по желанию формирует и записывает документ.
Успехов! С уважением, Владимир.
Приложение:
Ответ отправил: Владимир Лазурко (статус: Практикант)
Ответ отправлен: 16.02.2009, 15:08
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 243773 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Yla! Вариант1 - документ без табличной части Вырезка из моей работающей базы: Процедура орлорлорп() Конт=""; ОткрытьФорму("Документ.ПлатежноеПоручение3",Конт)Открыли форму нового документа, но не записали его. Форма открылась, заполняем поля: Конт.СтатусСоставителяПлДок="03"; КонецПроцедуры Вариант 2 - документ с табличной частью Подготавливаем данные табличной части ТЗ=СодатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("ТМЦ","Справочник.Номенклатура"); ТЗ.НоваяСтрока(); ТЗ.ТМЦ=Мопгро; Подготавливаем
данные документа Сп=СоздатьОбъект("СписокЗначений"); Сп.Установить("Сигнатура","ВованМолодецКакойКодПридумал"); Сп.Установить("СтатусСоставителяПлДок","03"); Сп.Установить("Данные",ТЗ); ОткрытьФорму("Документ.ПлатежноеПоручение3",Сп)Открыли форму нового документа, но не записали е
го, и передали ему данные. КонецПроцедуры Теперь внутри документа нужно, используя данные, построить документ Процедура ВводНового() Сп=Форма.Параметр; Если ТипЗначенияСтр(Сп)="СписокЗначений" Тогда Если Сп.Получить("Сигнатура")="ВованМолодецКакойКодПридумал" Тогда СтатусСоставителяПлДок=Сп.Получить("СтатусСоставителяПлДок");Шапка ТЗ=Сп.Получить("Данные"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл НоваяСтрока();Табличная
часть ТМЦ=ТЗ.ТМЦ Документ сформирован и показан на экране, но записан будет только по интерактивному нажатию кнопки ОК (с записью в журнале регистрации) Если мой ответ Вам помог, то поблагодарите меня, пожалуйста.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.