Сохранение документов

  • Автор темы XOXOJI
  • Дата начала
X

XOXOJI

#1
Вопрос такой.
1C v77
появилось необходимость, в такой фишке. из документа по истечению срока копируется нужная информация в документ другого типа.
после чего старый удаляется, а вот записать новый,с тем же номером, не получается, кто-нибудь знает как эту проблему решить? нужно именно чтоб с тем же номером сохранялся.
 
X

XOXOJI

#3
вот что имею на данный момент:

при создании нового документа, его нумерация идет почему-то с 22 а не с 1, посему так, я не пойму... думал конфликт между документами, но именно этот список документов пустой при создании нового...

не знаю почему так, хотелось бы конечно, чтоб нумерация с 1 шла
 

unknown181538

НеГуру
28.12.2008
1 417
0
#4
Непонятно вы изъясняетесь.
Значит создаете новый документ.
Присваиваете ему номер :
НовыйДокумент.НомерДОк=НомерСтарогоДокумента;
НовыйДокумент.Записать();
?
При записи ошибка возникает?
 
X

XOXOJI

#8
попробую объяснить еще понятнее. есть 2 типа документов. насколько я понимаю, их номера между собой не должны иметь никакой связи, проверял создавая документы первого типа(у которых нумерация идет с 1) создавал номером любым, который существует у документов 2-го типа, все нормально, документ создается без ошибок. а у документов 2-го типа, почему то нумерация начинается с 22 и не хочет создаваться документ с номером 1, ошибка "номер не уникальный"
 

vbs

Well-known member
18.02.2007
1 708
1
#9
Проверь, какой тип уникальности установлен у документов 2-го типа - если "по всем данного вида" - вполне возможно, что живет документ с какой-то левой датой (или даже с 1-го по 21-й)
Попробуй сделать поиск по номеру. Я такое когда-то встречал - в базе нашелся документ ... от 1900 года
 
X

XOXOJI

#10
1. перед сохранением документа удаляю старый. он удаляется, сообщение внизу пишется.
2. очищаю переменную, в которой был открыт документ.
3 присваиваю новому документу номер старого.
4 сохраняю, но получаю ошибку, номер не уникален

проверил, база пустая!
 
X

XOXOJI

#12
Док=СоздатьОбъект("Документ.Залоговый");
Док1=СоздатьОбъект("Документ.НаТорги");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() > 0

Цикл

Если Док.Льгот<ДатТ
Тогда

Док1.Новый();
Док1.НомерЗал=Док.НомерДок;
Док1.Метка="Нет";
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() > 0 Цикл
Док1.НоваяСтрока();
Док1.Предмет=Док.Предмет.Наименование;
Док1.Описание=Док.Описание.Наименование;
Док1.ФИО=Док.ФИО.Наименование;
Док1.Возвр=Док.СуммаКредита;
Док1.Прейскурант=Док.Прейскурант.Наименование;
Док1.Вес=Док.ЧистыйВес;
док1.Метка=да;
сообщить (Док.НомерДок);
Док.Удалить();
УдалитьОбъекты(Док);
док1.номердок=док1.номерзал ;
сообщить (Док1.НомерДок);
Док1.Сумма=Док1.Вес*Док1.Цена;
Док1.Записать();
КонецЦикла;
КонецЕсли;
КонецЦикла;


вроде ничего не пропустил..
 
X

XOXOJI

#14
УдалитьОбъекты(Док);

очистка переменной Док (тоесть удаление объекта), прописал, потому что думал в этом проблема

щас попробую после цикла поставить
 

unknown181538

НеГуру
28.12.2008
1 417
0
#15
И удаление в цикле перебора строк штука сомнительная. Не знаю как оно работает, но с точки зрения дальнейшего чтения кода нехорошо. Если вам нужно получить только одну строку пишите "прервать" или не "Пока получитьСтроку()", а "Если ПОлучитьСТроку()=1".
 
X

XOXOJI

#17
все равно, перенес запись, и удаление...

самое фиговое, ковыряться в чужих конфигах, но для начального развития очень полезно.

ну значится перенес удаление документа и запись за цикл... все равно пишет что номер не уникален
 

unknown181538

НеГуру
28.12.2008
1 417
0
#18
Посмотрите длину и тип номера документов? Может номер, например, обрезается при записи и становится нулевым? Ошибка возникает в первой же итерации цикла?

ААА!! Нумератор у документа не назначен?

"УдалитьОбъекты" уберите, т.к. после удаления Док возможно позиционируется на другую запись.
 
X

XOXOJI

#19
перед записью специально вывожу номер документа, который будет сохраняться... поэтому вижу что он точно не нулевой... а в остальном уже запарился, проверил ссылки на этот тип документов, кроме 1-го журнала, в котором они используются, нигде нет

тип номера "число", длинна 5