Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 09:37

как перепровести документ в 1с 8.3 и печатная форма

Автор denis-moscow1987, 18 июн 2014, 09:55

0 Пользователей и 1 гость просматривают эту тему.

denis-moscow1987

Здравствуйте, возможно кто то сталкивался с подобными ситуациями
1.
Имеется документ1 после заполнения которого при нажатии на кнопку Выполнить создается документ2.
Проходит время, в документ1 ранее созданный вносятся корректировки, если нажать на кнопку выполнить он создаст новый документ2, а ранее созданный документ2 будет уже не нужен.
Возник вопрос: Как сделать так , чтобы при изменении документ1 при нажатии на кнопку Выполнить перезаписывался ранее созданный документ2, а не плодились копии?
2.
Ранее стояла БП 2.0. был создан документ "Заявка" для него была создана хитрая печатная форма. Весь код формирования данной заявки лежит в Модуле объекта
2-е функции которые отвечают за формирования двух печатных форм( не экспортные) и одна экспортная которая осуществляет печать документа.
В модуле формы имеется процедура

Процедура УстановитьКнопкиПечати()
   
   мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФормИсх(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

   УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0);
   УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

   Если Не мПодменюПечати = Неопределено Тогда
      УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
   КонецЕсли;
   
КонецПроцедуры

Вот тут у меня вообще нет мыслей даже как поступить чтобы все это перевести на УФ для БП 3.0

Спасибо за помощь.

Dethmontt

Цитата: denis-moscow1987 от 18 июн 2014, 09:55Процедура УстановитьКнопкиПечати()
   
   мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФормИсх(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

   УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0);
   УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

   Если Не мПодменюПечати = Неопределено Тогда
      УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
   КонецЕсли;
   
КонецПроцедуры
Зачем это переписывать, это БСП и есть уже в БП 3.0
(только немного по другому реализовано)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

denis-moscow1987

Цитата: Dethmontt от 18 июн 2014, 11:34
Цитата: denis-moscow1987 от 18 июн 2014, 09:55Процедура УстановитьКнопкиПечати()
   
   мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФормИсх(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));

   УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0);
   УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));

   Если Не мПодменюПечати = Неопределено Тогда
      УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
   КонецЕсли;
   
КонецПроцедуры
Зачем это переписывать, это БСП и есть уже в БП 3.0
(только немного по другому реализовано)

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

cska-fanat-kz

1. сперва необходимо сделать увязку Док1 и Док2. Например в Док2 создаем реквизит ДокументОснование и заполняем его Док1. Теперь при перезаписи Док1 по этой связке можно найти созданный док и перезаполнить.

2. от старой печатной формы вам нужна только процедура формирования самого табличного документа. Эти процедуры в обычном и управляемом приложениях более менее совпадают. Далее ищем пример внешней печатной формы для 3.0 и подсовываем старую процедуру печати
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

denis-moscow1987

Цитата: cska-fanat-kz от 18 июн 2014, 13:08
1. сперва необходимо сделать увязку Док1 и Док2. Например в Док2 создаем реквизит ДокументОснование и заполняем его Док1. Теперь при перезаписи Док1 по этой связке можно найти созданный док и перезаполнить.

2. от старой печатной формы вам нужна только процедура формирования самого табличного документа. Эти процедуры в обычном и управляемом приложениях более менее совпадают. Далее ищем пример внешней печатной формы для 3.0 и подсовываем старую процедуру печати

1. Связь идет по Реквизитам Номер и Дата.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

denis-moscow1987


cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

denis-moscow1987

Цитата: cska-fanat-kz от 18 июн 2014, 13:37
чего именно пример?! :xfbnsdfb:

Док = документы.СчетНаОплатуПокупателю.СоздатьДокумент();

СтрМаршрут =СтрМаршрутДляСФ();
Если Объект.СчетНаОплату.Пустая() тогда
   Док = документы.СчетНаОплатуПокупателю.СоздатьДокумент();
      Док.Дата = объект.Дата;
      Док.Номер=Объект.Номер;
      Док.Записать();
      объект.СчетНаОплату = Док.Ссылка;
      Записать();
   Иначе
      Док = объект.СчетНаОплату.Ссылка.ПолучитьОбъект();
      Док.ПометкаУдаления = Ложь;                         
      Док.Записать();
   КонецЕсли;

   Док.Ссылка=Объект.Ссылка;      
   Док.Дата=ОБъект.Дата;
   Док.Номер=объект.Номер;
   Док.Контрагент = Объект.Контрагент;
   Док.склад = справочники.Склады.НайтиПоКоду("000000001");
   Док.ДоговорКонтрагента = Объект.ДоговорКонтрагента;
   Док.Комментарий = Объект.Комментарий;
Док.Записать(РежимЗаписиДокумента.Проведение);
Вот тут формируется СчетФактура на основании Заявки.
Как сделать,чтобы при изменении данных в заявке в ранее сформированном сф также изменились данные.
Прошу помочь,спасибо

cska-fanat-kz

Так вот же у вас все написано!
у вас у Заявки есть реквизит СчетНаОплату и вы проверяете: если заполнен, то получаете объект, если нет - создаете...

Что не так то? :dfbsdfbsdf:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск