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

При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

Автор ppkmlite, 19 ноя 2014, 15:00

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

ppkmlite

Здравствуйте, подскажите, пожалйста!
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально.
Создаю новый документ "Заявка на кассовый расход", записываю и выходит сообщение  "Значение 9 поля "номер" не уникально. Именно 9!! То есть номер до этого редактировался, и даже если я скопирую другой документ, выходит опять та же ошибка. Делала перенумерацию, перенумеровывает, создаю новый докумнт, та же ошибка, именно с номером 9!!

cska-fanat-kz

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

ppkmlite

Дело в том., что база типовая без настроек, закрыта для редактирования,настроек нет, то есть стандартные настройки.
Дело в том, что провожу перенумерацию, создаю документ, провожу, не проводит, редактирую номер вручную, провожу, проводит. Создаю еще один документ, провожу, опять не проводит, номер 9 не уникален. А если редактирую номер, и ставлю буквенный символ вначале, проводит!!! Но мне нужен чсисловой номер!!!

stillenough

ситуация достаточно типовая. У вас слетела нумерация в документах. Получилось так, что пользователь ввел номер руками и автоматический отчет пошел от этого значения. Выход - программно обработать документы и восстановить нумерацию (если номера документов не нужно сохранять, например "Реализация товаров и услуг", для отчетности нельзя менять номера документов.) Если номер требуется сохранить - читайте ниже.

В свое время решал проблему следующими шагами:
1 - увеличить количество знаков в поле номер - решит проблемы, но через определенное время она опять всплывет.
2 - написать обработку, которая будет проверять и менять номера исключая незначащие 0
Ниже часть моей обработки по исправлению реализаций (прошу прощения, не нашел спойлер)
если (сред(строка.номер,0,2) = "ОТ") тогда
если кодСимвола(сред(строка.номер,ЭлементыФормы.ПолеВвода3.Значение,1)) = 32 тогда
если энд = ЛОЖЬ тогда
бу = сред(строка.номер,4,10);
от = "ОТ000000" + бу;

Попытка
серый = строка.ссылка.получитьобъект();
серый.номер = от;
серый.записать();
сообщить(строка.номер + " успешно в " + от);
энд = ИСТИНА;
исключение
сообщить(строка.номер + " не удалось преобразовать в " + от);
КонецПопытки;
КонецЕсли;

если энд = ЛОЖЬ тогда
бу = сред(строка.номер,4,10);
от = "ОТ00000" + бу;

Попытка
серый = строка.ссылка.получитьобъект();
серый.номер = от;
серый.записать();
сообщить(строка.номер + " успешно в " + от);
энд = ИСТИНА
исключение
сообщить(строка.номер + " не удалось преобразовать в " + от);
КонецПопытки;
КонецЕсли;

если энд = ЛОЖЬ тогда
бу = сред(строка.номер,4,10);
от = "ОТ0000" + бу;

Попытка
серый = строка.ссылка.получитьобъект();
серый.номер = от;
серый.записать();
сообщить(строка.номер + " успешно в " + от);
энд = ИСТИНА
исключение
сообщить(строка.номер + " не удалось преобразовать в " + от);
КонецПопытки;
КонецЕсли;

если энд = ЛОЖЬ тогда
бу = сред(строка.номер,4,10);
от = "ОТ000" + бу;

Попытка
серый = строка.ссылка.получитьобъект();
серый.номер = от;
серый.записать();
сообщить(строка.номер + " успешно в " + от);
энд = ИСТИНА
исключение
сообщить(строка.номер + " не удалось преобразовать в " + от);
КонецПопытки;
КонецЕсли;

если энд = ЛОЖЬ тогда
бу = сред(строка.номер,4,10);
от = "ОТ00" + бу;

Попытка
серый = строка.ссылка.получитьобъект();
серый.номер = от;
серый.записать();
сообщить(строка.номер + " успешно в " + от);
энд = ИСТИНА
исключение
сообщить(строка.номер + " не удалось преобразовать в " + от);
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЕсли;

ppkmlite

Спасибо за ответы. Буду пробывать создать свою обработку по перенумерации.
Сначала хочу вывести список документов "Заявок на кр".
Создаю форму обработки,на ней кнопку. Создаю табл часть.
Пишу
Процедура НайтиДокументыНажатие(Элемент)
   новаяпеременная = Доки.Добавить();
   новаяпеременная.Заявки = Документы.ЗаявкаНаКассовыйРасход.ПолучитьФормуСписка();
КонецПроцедуры
Запускаю. Не выводит!! Что опять не так?

дфтын

новаяпеременная.Заявки = Документы.ЗаявкаНаКассовыйРасход.ПолучитьФормуСписка();
А это что вы делаете?
Добавлено: 19 ноя 2014, 21:43


Кстати даже интеернсо , а что там будет то.. новые веянья
делайте чтото типа:
Дк = Документы.ЗаявканаРасх.Выбрать();
Пока Дк.Следующий() Цикл
ст = Доки.Добавить();
ст.Заявка = Дк.Ссылка;
КонецЦикла;


ppkmlite

А вот так не пойдет?
ВЫБРАТЬ
   ЗаявкаНаКассовыйРасход.Ссылка КАК Документ,
   ЗаявкаНаКассовыйРасход.Номер,
   ЗаявкаНаКассовыйРасход.Дата
ИЗ
   Документ.ЗаявкаНаКассовыйРасход КАК ЗаявкаНаКассовыйРасход
ГДЕ
   ЗаявкаНаКассовыйРасход.Номер = &Номер

УПОРЯДОЧИТЬ ПО
   Документ
Как мне здесь добавить условие на вывод докумннта с номером 9?

дфтын

ЗаявкаНаКассовыйРасход.Номер = &Номер
Ну вот оно, условие

Потом, надо - Запрос.Установитьпараметр("Номер","9");


ls600

есть обработка УниверсальныеПодборИОбработкаОбъектов. ей перенумеруйте весь список документов. после если база типовая то в ней есть обработка Определение стратегии редактирования номеров(кодов) объектов. у меня она находится в меню Сервис - Служебные. эта обработка восстановит нумерацию, недавно себе исправлял такую же ситуацию. 

KrivosheevEV

ЗаявкаНаКассовыйРасход.Номер ПОДОБНО &Номер
..
Запрос.Установитьпараметр("Номер","%9%");

Теги:

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

Рейтинг@Mail.ru

Поиск