Нужна помошь вот в чем:
документ реализация запасов (аналогично и налоговая накладная): реализован механизм формирования номера от даты документа:
Показать скрытый текст развернуть
//-----------------------------------------------
Функция УстНомерДок()
// Следующие три строки сохраняют номер документа до указанной даты, после этой даты
// номер будет заданного формата
если ДатаДок<=Дата(2009,5,31) тогда
возврат НомерДок;
КонецЕсли;
// Далее задаем формат номера необходимого нам вида
НомерДок="";
стрД=прав(сокрлп(формат(ДатаДок,"ДГГГГММДД")),6);
// ннД=сокрлп(фирма.Префикс)+" "+лев(стрД,2)+"/"+прав(стрД,4)+"-";
ннД=сокрлп(фирма.Префикс)+" "+лев(стрД,2)+прав(стрД,4)+"_";
//
ДокРН=СоздатьОбъект("Документ.РеализацияЗапасов") ;
если ДокРН.выбратьДокументы(ДатаДок,ДатаДок)=0 тогда
НомерДок=ннД+"01";
иначе
спНом=СоздатьОбъект("СписокЗначений");
пока ДокРН.ПолучитьДокумент()=1 цикл
если ДокРН.фирма=фирма тогда
если пустоеЗначение(докРН.НомерДок)=0 тогда
поз1=найти(докРН.НомерДок,"_");
если поз1>0 тогда
сд=стрДлина(сокрлп(докРН.НомерДок));
чс=прав(сокрлп(докРН.НомерДок),сд-поз1);
чч=число(чс);
спНом.ДобавитьЗначение(чч);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
если спНом.размерсписка()>0 тогда
спНом.Сортировать(1);
максНом=спНом.ПолучитьЗначение(1);
тн=формат(максНом+1,"Ч(0)2.0");
НомерДок=ннД+тн;
иначе
НомерДок=ннД+"01";
конецЕсли;
КонецЕсли;
Форма.НомерДокдляПечати.Цвет(0,0,0);
возврат НомерДок;
КонецФункции
Но вот какая ерунда происходит при открытии ранее созданного документа номер меняется на следующий, т.е. гдето срабатывает механизм определения номера..., а где понять не могу...
на всякий случай выкладываю также и модуль ПриОткрытии
Показать скрытый текст При открытии
Процедура ПриОткрытии()
Перем СпрСлуж;
КоэффициентСтарый=1;
спРасчетОтЦен.ДобавитьЗначение(1,"Расчет от цены с НДС");
спРасчетОтЦен.ДобавитьЗначение(2,"Расчет от цены без НДС");
спРасчетОтЦен.ДобавитьЗначение(3,"Расчет от суммы с НДС");
спРасчетОтЦен.ДобавитьЗначение(4,"Расчет от суммы без НДС");
спРасчетОтЦен.ДобавитьЗначение(5,"Не рассчитывать суммы");
Если РасчетОтЦен<=0 Тогда
СпрСлуж=СоздатьОбъект("Справочник.Служебный");
Если СпрСлуж.НайтиПоКоду("РАСЧ_ОТ_ЦЕН_СУММ")=1 Тогда
РасчетОтЦен=СпрСлуж.ТекущийЭлемент().ЗначениеЧисло ;
Если РасчетОтЦен>5 Тогда
Сообщить("Неправильно задано значение параметра РАСЧ_ОТ_ЦЕН_СУММ в справочнике Служебный!");
РасчетОтЦен=3; //устанавливаем Расчет от суммы с НДС
КонецЕсли;
Иначе
СпрСлуж.Новый();
СпрСлуж.Код="РАСЧ_ОТ_ЦЕН_СУММ";
СпрСлуж.Наименование="Вид расчета в расходной накладной по умолчанию";
СпрСлуж.ЗначениеЧисло=3;
СпрСлуж.Записать();
Сообщить("Не найдено значение расчета в справочнике 'Служебный'! Установлен Расчет от Суммы С НДС.") ;
РасчетОтЦен=3;
КонецЕсли;
спРасчетОтЦен.ТекущаяСтрока(РасчетОтЦен);
Иначе
н=спРасчетОтЦен.НайтиЗначение(РасчетОтЦен);
Если н>0 Тогда
спРасчетОтЦен.ТекущаяСтрока(н);
КонецЕсли;
КонецЕсли;
Если спРасчетОтЦен.ТекущаяСтрока()<=0 Тогда
спРасчетОтЦен.ТекущаяСтрока(1);
КонецЕсли;
спРасчетОтЦен.ПолучитьЗначение(спРасчетОтЦен.Текущ аяСтрока(),стрТипРасчетаПоУмолчанию);
ПриВыбореТипаРасчета(0);
СпрСлуж=0;
//!К--илья--
Если глПроверкаДатыЗапрета(Контекст)=1 Тогда
Если ФлВыбораОперации<>1 Тогда
//Форма.КнОперация.Доступность(?(КоличествоСтрок()=0 ,1,0));
Иначе
Форма.КнОперация.Доступность(1);
Если ОперацияДокумента.Выбран()=0 Тогда
ОперацияДокумента=глОперацияПоУмолчанию(ТекущийДок умент().Вид());
КонецЕсли;
Форма.МестоНахождения.Доступность(1);
КонецЕсли;
Форма.КнОчистить.Доступность(?(КоличествоСтрок()=0 ,0,1));
//Форма.МестоНахождения.Доступность(?(КоличествоСтро к()=0,1,0));
лИт=СоздатьОбъект("БухгалтерскиеИтоги");
Если ОперацияДокумента.Выбран()=1 Тогда
ПолучитьСчетУчета();
ВыполнитьЛокальныйЗапрос();
КонецЕсли;
Иначе
СтатусВозврата(0);
КонецЕсли;
//-----------------------------------------------
Если ТТН.Выбран()=0 Тогда
ТТН=Перечисление.ДаНет.Нет;
КонецЕсли;
//-----------------------------------------------
// Инициализация закладок и формы
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1,"Основной");
Форма.Закладки.ДобавитьЗначение(2,"Предприятие");
Если ТТН=Перечисление.ДаНет.Да Тогда
Форма.Закладки.ДобавитьЗначение(3,"ТТН");
Форма.Упаковка.Видимость(1);
Форма.КолУп.Видимость(1);
Форма.МассаСтр.Видимость(1);
Иначе
Форма.Упаковка.Видимость(0);
Форма.КолУп.Видимость(0);
Форма.МассаСтр.Видимость(0);
КонецЕсли;
Форма.ИспользоватьСлой("Общий, Основной ",2);
//Инициализирум список действий по кнопке "Действия"
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Отчет о проводках документа");
СписокДействий.ДобавитьЗначение("Отчет о проводках операции");
СписокДействий.ДобавитьЗначение("Открыть в журнале");
СписокДействий.ДобавитьЗначение("Ввести на основании");
Форма.Партия.ВыполнятьФормулуТолькоПриИзменении(1) ;
КонецПроцедуры
Что нужно дописать, чтобы не меняло номера ранее созданных документов.
Социальные закладки