|   |   | 
| 
 | Как отследить модифицированность? | ☑ | ||
|---|---|---|---|---|
| 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) + т.е. при нажатии на кнопку документ автоматически сохраняется     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |