|
Как отследить модифицированность? | ☑ | ||
---|---|---|---|---|
0
pro3ri
23.04.15
✎
13:52
|
ДОбрый день!
Делаю печ форму, вношу данные интерактивно, а в печатной форме выходит старое.Как поправить? код: &НаКлиенте Перем ТабДок; &НаСервереБезКонтекста Процедура ПечатьНаСервере(Объект, Ссылка, Пользователь, ТабДок) //если документ модифицирован, тогда вопрос о том, нужно ли провести документ //Объект = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.РеализацияТоваров")); //Модифицированность = Объект.Модифицированность(); Макет = Документы.РеализацияТоваров.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок = Новый ТабличныйДокумент; Если Ссылка.Контрагент.ВидКонтрагента = Перечисления.ВидКонтрагента.ЮрЛицо Тогда ОбластьШапка.Параметры.НазваниеДокумента = "ТОРГ-12"; Иначе ОбластьШапка.Параметры.НазваниеДокумента = "Кассовый чек"; КонецЕсли; ОбластьШапка.Параметры.Номер = Ссылка.Номер; ОбластьШапка.Параметры.Дата = Формат(Ссылка.Дата,"ДЛФ=Д"); ТабДок.Вывести(ОбластьШапка); Для каждого Строка Из Ссылка.Товары Цикл ОбластьСтрока.Параметры.Заполнить(Строка); ТабДок.Вывести(ОбластьСтрока); КонецЦикла; СуммаДокумента = Ссылка.Товары.Итог("Сумма"); ОбластьПодвал.Параметры.Пользователь = Пользователь; ОбластьПодвал.Параметры.КонтактноеЛицоКонтрагента = Ссылка.КонтакноеЛицо; ОбластьПодвал.Параметры.СуммаДокумента = ЧислоПрописью(Окр(СуммаДокумента,2),,"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"); ТабДок.Вывести(ОбластьПодвал); //ЗначениеВДанныеФормы(Тип("ДанныеФормыСтруктура"),Объект); КонецПроцедуры &НаКлиенте Процедура Печать(Команда) ПечатьНаСервере(Объект,Объект.Ссылка, ТекПользователь, ТабДок); ТабДок.Показать(); КонецПроцедуры |
|||
1
pro3ri
23.04.15
✎
13:53
|
приходиться записывать док
|
|||
2
DrShad
23.04.15
✎
13:55
|
ты не поверишь Модифицированность()
|
|||
3
pro3ri
23.04.15
✎
13:57
|
(2) //Объект = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.РеализацияТоваров"));
//Модифицированность = Объект.Модифицированность(); так правильно будет? |
|||
4
Basilio
23.04.15
✎
13:57
|
а на фига печатать незаписаный док?
|
|||
5
pro3ri
23.04.15
✎
13:59
|
(4) хочется сделать чтобы если док модифицирован, то выходило окошко с вопросом о записи документа и послед. открытием печ формы
|
|||
6
DrShad
23.04.15
✎
13:59
|
и в печать передаешь ДанныеФормыСтруктура?
|
|||
7
DrShad
23.04.15
✎
13:59
|
(5) не нужно окошек - проклянут
|
|||
8
Basilio
23.04.15
✎
14:01
|
УправляемаяФорма.Модифицированность (ManagedForm.Modified)
УправляемаяФорма (ManagedForm) Модифицированность (Modified) Использование: Чтение и запись. Описание: Тип: Булево. Признак изменения (модифицированности) данных в форме. Модифицированность отображается символом (*) в заголовке окна формы. Истина - изменена. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. |
|||
9
DrShad
23.04.15
✎
14:03
|
(8) и? а форма где?
|
|||
10
Basilio
23.04.15
✎
14:03
|
&НаКлиенте
Процедура Печать(Команда) Если Модифицированность Тогда Ответ = Вопрос ("бла-бла-бла",..) Если Ответ = Да Тогда Записать(); Иначе Возврат; Конецесли ПечатьНаСервере(Объект,Объект.Ссылка, ТекПользователь, ТабДок); ТабДок.Показать(); КонецПроцедуры |
|||
11
Basilio
23.04.15
✎
14:04
|
(9) так он из формы документа же печатает вроде, не?
|
|||
12
DrShad
23.04.15
✎
14:04
|
(11) вроде из нее и это странно
|
|||
13
pro3ri
23.04.15
✎
14:06
|
(11) да форма документа
|
|||
14
DrShad
23.04.15
✎
14:15
|
(13) и кто тебя такому научил?
|
|||
15
pro3ri
23.04.15
✎
14:20
|
(14) по видеоуроку
|
|||
16
DrShad
23.04.15
✎
14:21
|
(15) да ладно!? это кто же такое записал?
|
|||
17
Рэйв
23.04.15
✎
14:23
|
(0)Нафига ты все из сылки берешь, чудик?:-) Естественно оно тебе все старое давать будет:-))
|
|||
18
pro3ri
23.04.15
✎
14:26
|
(17) а как надо?
|
|||
19
ЧеловекДуши
23.04.15
✎
14:26
|
(15) Лучше через Команды рисуй печать.
Сам модуль формирование печатной формы в Менеджер документа. Подсмотри в типовые УТ 11 :) |
|||
20
Рэйв
23.04.15
✎
14:27
|
(18)Просто обращайся к реквизитам. Но если так страшно и хочется непременно за чтото подержаться, бери все не от Ссылка. а от ЭтотОбъект.
:-) |
|||
21
pro3ri
24.04.15
✎
12:13
|
(10) как то так...
&НаКлиенте Процедура Печать(Команда) Если Модифицированность Тогда Ответ = Вопрос("Документ был изменен, печать возможна после сохраниния изменений. Сохранить изменения?",РежимДиалогаВопрос.ДаНет); Иначе ПечатьНаСервере(Объект.Ссылка, ТекПользователь, ТабДок); ТабДок.Показать(); Возврат; КонецЕсли; Если Ответ = КодВозвратаДиалога.Да Тогда Записать(); Иначе Прочитать(); КонецЕсли; ПечатьНаСервере(Объект.Ссылка, ТекПользователь, ТабДок); ТабДок.Показать(); КонецПроцедуры |
|||
22
pro3ri
27.04.15
✎
13:34
|
Модуль команды:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если ПараметрыВыполненияКоманды.Источник.Модифицированность Тогда Ответ = Вопрос("Документ был изменен, печать возможна после сохраниния изменений. Сохранить изменения?",РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Да Тогда ПараметрыВыполненияКоманды.Источник.Записать(); //Записать(); Иначе ПараметрыВыполненияКоманды.Источник.Прочитать(); //Прочитать(); КонецЕсли; КонецЕсли; ТабДок = Новый ТабличныйДокумент; ПечатьДокумента(ТабДок, ПараметрКоманды, ТекПользователь); ТабДок.Показать(); КонецПроцедуры &НаСервере Процедура ПечатьДокумента(ТабДок, ПараметрКоманды, Пользователь) Документы.РеализацияТоваров.ПечатьДок(ТабДок, ПараметрКоманды, Пользователь); КонецПроцедуры модуль менеджера: Процедура ПечатьДок(ТабДок, Ссылка, Пользователь) Экспорт Макет = Документы.РеализацияТоваров.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваров.Ссылка, | РеализацияТоваров.ВерсияДанных, | РеализацияТоваров.ПометкаУдаления, | РеализацияТоваров.Номер, | РеализацияТоваров.Дата, | РеализацияТоваров.Проведен, | РеализацияТоваров.Контрагент, | РеализацияТоваров.КонтакноеЛицо, | РеализацияТоваров.СуммаДокумента, | РеализацияТоваров.Товары.( | Ссылка, | НомерСтроки, | Номенклатура, | ЕдИзм, | Количество, | Цена, | Сумма, | Качество | ), | РеализацияТоваров.Представление, | РеализацияТоваров.МоментВремени |ИЗ | Документ.РеализацияТоваров КАК РеализацияТоваров |ГДЕ | РеализацияТоваров.Ссылка В(&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ВыборкаДетальныеЗаписи.Следующий(); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); Если ВыборкаДетальныеЗаписи.Контрагент.ВидКонтрагента = Перечисления.ВидКонтрагента.ЮрЛицо Тогда ОбластьШапка.Параметры.НазваниеДокумента = "ТОРГ-12"; Иначе ОбластьШапка.Параметры.НазваниеДокумента = "Кассовый чек"; КонецЕсли; ОбластьШапка.Параметры.Номер = ВыборкаДетальныеЗаписи.Номер; ОбластьШапка.Параметры.Дата = Формат(ВыборкаДетальныеЗаписи.Дата,"ДЛФ=Д"); ТабДок.Вывести(ОбластьШапка); ТаблЗначДляСуммы = ВыборкаДетальныеЗаписи.Товары.Выгрузить(); СуммаДокумента = ТаблЗначДляСуммы.Итог("Сумма"); ВыборкаТовары = ВыборкаДетальныеЗаписи.Товары.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл ОбластьСтрока.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьСтрока); КонецЦикла; ОбластьПодвал.Параметры.Пользователь = Пользователь; ОбластьПодвал.Параметры.КонтактноеЛицоКонтрагента = ВыборкаДетальныеЗаписи.КонтакноеЛицо; ОбластьПодвал.Параметры.СуммаДокумента = ЧислоПрописью(Окр(СуммаДокумента,2),,"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"); ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры // () А как теперь отследить модифицированность? При изменении формы значение ПараметрыВыполненияКоманды.Источник.Модифицированность в модуле команды возвр Ложь. |
|||
23
pro3ri
27.04.15
✎
13:48
|
+ причем интерактивно внесенные данные указанные в форме сразу в печ форме...
|
|||
24
pro3ri
27.04.15
✎
13:54
|
(23) + т.е. при нажатии на кнопку документ автоматически сохраняется
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |