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

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

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

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

denis-moscow1987

Цитата: cska-fanat-kz от 18 июн 2014, 15:16
Так вот же у вас все написано!
у вас у Заявки есть реквизит СчетНаОплату и вы проверяете: если заполнен, то получаете объект, если нет - создаете...

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

cska-fanat-kz

вот отсюда

Док.Ссылка=Объект.Ссылка;     
   Док.Дата=ОБъект.Дата;
   Док.Номер=объект.Номер;
   Док.Контрагент = Объект.Контрагент;

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

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

denis-moscow1987

Цитата: cska-fanat-kz от 18 июн 2014, 15:16
Так вот же у вас все написано!
у вас у Заявки есть реквизит СчетНаОплату и вы проверяете: если заполнен, то получаете объект, если нет - создаете...

Что не так то? :dfbsdfbsdf:

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

не работает так

Добавлено: 18 июн 2014, 16:07


Цитата: cska-fanat-kz от 18 июн 2014, 15:59
вот отсюда

Док.Ссылка=Объект.Ссылка;     
   Док.Дата=ОБъект.Дата;
   Док.Номер=объект.Номер;
   Док.Контрагент = Объект.Контрагент;

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

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

Поле объекта недоступно для записи (Ссылка)
      Док.Ссылка=Объект.Ссылка;

Добавлено: 18 июн 2014, 16:17


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

cska-fanat-kz

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

cska-fanat-kz

Цитата: denis-moscow1987 от 18 июн 2014, 16:01Если НЕ ПустаяСтрока(Объект.СчетНаОплату) Тогда
     СтрМаршрут=СтрМаршрут();
      //Если ТипЗнч(объект.Ссылка) = Тип("ДокументСсылка.ЗаявкаНаТранспортноеСредство") Тогда
      ДокОснованиеОбъект = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку().ПолучитьОбъект();
      Для Каждого ДокСФ Из ДокОснованиеОбъект Цикл
      ДокСФ.Дата=Объект.Дата;
      ДокСФ.Номер=Объект.Номер;
конецЦикла;
КонецЕСли;

не работает так

Ну так сравните с тем что было в ответе №8...
Цикл откуда то появился...

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

denis-moscow1987

Цитата: cska-fanat-kz от 19 июн 2014, 05:58
Цитата: denis-moscow1987 от 18 июн 2014, 16:01Если НЕ ПустаяСтрока(Объект.СчетНаОплату) Тогда
     СтрМаршрут=СтрМаршрут();
      //Если ТипЗнч(объект.Ссылка) = Тип("ДокументСсылка.ЗаявкаНаТранспортноеСредство") Тогда
      ДокОснованиеОбъект = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку().ПолучитьОбъект();
      Для Каждого ДокСФ Из ДокОснованиеОбъект Цикл
      ДокСФ.Дата=Объект.Дата;
      ДокСФ.Номер=Объект.Номер;
конецЦикла;
КонецЕСли;

не работает так

Ну так сравните с тем что было в ответе №8...
Цикл откуда то появился...


Если НЕ ПустаяСтрока(Объект.СчетНаОплату) тогда
    ДокОснованиеОбъект = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку().ПолучитьОбъект();

      ДокОснованиеОбъект.Дата=Объект.Дата;
      ДокОснованиеОбъект.Номер=Объект.Номер;
     ДокОснованиеОбъект.Записать();
     Сообщить("привет");

КонецЕсли;   

Значение не является значением объектного типа (Дата)
      ДокОснованиеОбъект.Дата=Объект.Дата;

Добавлено: 20 июн 2014, 00:43


Цитата: denis-moscow1987 от 20 июн 2014, 00:39
Цитата: cska-fanat-kz от 19 июн 2014, 05:58
Цитата: denis-moscow1987 от 18 июн 2014, 16:01Если НЕ ПустаяСтрока(Объект.СчетНаОплату) Тогда
     СтрМаршрут=СтрМаршрут();
      //Если ТипЗнч(объект.Ссылка) = Тип("ДокументСсылка.ЗаявкаНаТранспортноеСредство") Тогда
      ДокОснованиеОбъект = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку().ПолучитьОбъект();
      Для Каждого ДокСФ Из ДокОснованиеОбъект Цикл
      ДокСФ.Дата=Объект.Дата;
      ДокСФ.Номер=Объект.Номер;
конецЦикла;
КонецЕСли;

не работает так

Ну так сравните с тем что было в ответе №8...
Цикл откуда то появился...


Если НЕ ПустаяСтрока(Объект.СчетНаОплату) тогда
    ДокОснованиеОбъект = Документы.СчетНаОплатуПокупателю.ПолучитьСсылку().ПолучитьОбъект();

      ДокОснованиеОбъект.Дата=Объект.Дата;
      ДокОснованиеОбъект.Номер=Объект.Номер;
     ДокОснованиеОбъект.Записать();
     Сообщить("привет");

КонецЕсли;   

Значение не является значением объектного типа (Дата)
      ДокОснованиеОбъект.Дата=Объект.Дата;

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

cska-fanat-kz

Цитата: denis-moscow1987 от 20 июн 2014, 00:39Документы.СчетНаОплатуПокупателю.ПолучитьСсылку()...

Вы уже каким то сочинительством занимаетесь...
Что еще за ПОЛУЧИТЬССЫЛКУ()???
Хоть бы в синтакс-помощник слазили и посмотрели, как его применять...

Вы проверяете заполненность поля СчетНаОплату
Если НЕ ПустаяСтрока(Объект.СчетНаОплату) тогда

Правда ссылочное значение проверяется через НЕ ЗначениеЗаполнено()
Далее если условие выполняется (т.е. документ уже создан), то вам просто надо получить его объект для возможности изменения:
СчетНаОплатуОбъект = Объект.СчетНаОплату.ПолучитьОбъект();

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

Теги:

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

Рейтинг@Mail.ru

Поиск