Доброго времени суток.
Имеется 1с Автосервис (УНФ) 1.6.18.98 (платформа 8.3.15.1534)
Предыстория: Была необходима сквозная нумерация счетов и реализаций в двух базах, была реализована через расширение, которое берет номер документа из текстового файла:
&После("УстановитьПрефиксИнформационнойБазыИОрганизации")
Процедура ДН_УстановитьПрефиксИнформационнойБазыИОрганизации(Источник, СтандартнаяОбработка, Префикс)
Если ТипЗнч(Источник) = Тип("ДокументОбъект.РасходнаяНакладная")
ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.СчетНаОплату")
ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.СчетФактура")
ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.асЗаказНаряд")
Тогда
СтандартнаяОбработка = Ложь;
ПутьКФайлу = "";
ИмяФайла = "";
Если ТипЗнч(Источник) = Тип("ДокументОбъект.РасходнаяНакладная") Тогда
ИмяФайла = "РН.txt";
ИначеЕсли ТипЗнч(Источник) = Тип("ДокументОбъект.асЗаказНаряд") Тогда
ИмяФайла = "РН.txt";
ИначеЕсли ТипЗнч(Источник) = Тип("ДокументОбъект.СчетНаОплату") Тогда
ИмяФайла = "Счет.txt";
ИначеЕсли ТипЗнч(Источник) = Тип("ДокументОбъект.СчетФактура") Тогда
ИмяФайла = "СФ.txt";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОрганизацииДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Организации.ДополнительныеРеквизиты КАК ОрганизацииДополнительныеРеквизиты
|ГДЕ
| ОрганизацииДополнительныеРеквизиты.Свойство = &Свойство
| И ОрганизацииДополнительныеРеквизиты.Ссылка = &Организация";
Запрос.УстановитьПараметр("Организация", Источник.Организация);
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Путь к файлу (Организации)"));
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ПутьКФайлу = СокрЛП(Выборка.Значение);
ПутьКФайлу = ПутьКФайлу + ?(Прав(ПутьКФайлу, 1) = "\", "", "\") + ИмяФайла;
КонецЕсли;
ДлинаНомера = Источник.Метаданные().ДлинаНомера - СтрДлина(Префикс);
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ПутьКФайлу, КодировкаТекста.ANSI);
Стр = Текст.ПолучитьСтроку(Текст.КоличествоСтрок());
ТекущийНомер = Число(Стр) + 1;
Источник.Номер = Префикс + Формат(ТекущийНомер, "ЧЦ="+Строка(ДлинаНомера)+"; ЧВН=; ЧГ=");
Текст.УстановитьТекст(ТекущийНомер);
Текст.Записать(ПутьКФайлу, КодировкаТекста.ANSI);
КонецЕсли;
КонецПроцедуры
Показать
Все прекрасно работало до последнего обновления. Собственно возникшие проблемы:
1)при записи документа Заказ-наряд - присваивается префикс не той организации, но правильный префикс информационной базы. при записи счета на оплату или расходной накладной - префикс встает верный
2)Собственно номер заказ-наряда берется не из файла, почему-то, а присваивается программой по порядку, при записи счета или накладной - механизм отрабатывает в штатном режиме, номер берется из файла
Кэш почищен, тестирование и исправление выполнено
Как поправить эту беду? Может кто-то сталкивался с подобным?