8.х Механизм автонумерации не использует всю длину номера

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем spiteful41, 16 июл 2009.

  1. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    1С:Предприятие 8.1 (8.1.13.41)
    "Управление торговлей", редакция 10.3 (10.3.5.1)

    У документа установлена автонумерация, длина номера 4, контроль уникальности - в пределах года.
    Последний документ имеет номер 0999. При записи следующего вылетает ошибка "Не уникальный номер документа". В процедурах ПередЗаписью и ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера документ номер остается пустым, до процедуры модуля документа ПриЗаписи отладка не доходит.

    Где копать? Как исправить?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ищи в документах! Какой-то гад поставил номер на 1 (как минимум)символ меньше
  3. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    С номерами документов все норм.

    Еще: тип номера строка и все они из 4-х символов
  4. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    отсортируй по номеру и посмотри внизу и вверху списка, наверняка ченить найдешь.

    Также глянь мож префикс виноват...
  5. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Префикса нет, по номеру сортировка от 0001 до 2300
  6. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    хм... тогда он должен следующий выделять 2301...
  7. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26

    хм......А не выделяет)
  8. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну у меня в 8.0 УТ работает процедура УстановитьНомерДокумента в общем модуле "РаботаСДиалогами":

    Код:
    Процедура УстановитьНомерДокумента(ДокументОбъект) Экспорт
    
    // Если  нет реквизита "Организация" или для нее не задан префикс, то 
    // используем пустой префикс,
    // иначе используем префикс организации.
    МетаданныеДокумента = ДокументОбъект.Метаданные();
    
    Если Не ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
    Или ЗначениеНеЗаполнено(ДокументОбъект.Организация.Префикс) Тогда
    
    ДокументОбъект.УстановитьНовыйНомер("00");
    
    Иначе
    
    ДокументОбъект.УстановитьНовыйНомер(ДокументОбъект.Организация.Префикс);
    
    КонецЕсли;
    
    КонецПроцедуры // УстановитьНомерДокумента()
    
    
    
    так вот строка ДокументОбъект.УстановитьНовыйНомер("00") не дает использовать 2 главных разряда...
  9. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26

    Спасибо, но я написал, что речь идет о 8.1
  10. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    видел, и привел пример процедуры, которая может не давать автоматом занимать главный разряд... Ищи где задается номер, тогда поймешь почему траблы...
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Интересно получается

    Последний документ имеет номер 0999

    Префикса нет, по номеру сортировка от 0001 до 2300

    ЭТО КАК? Значит 0999 все-таки не последний (не в позиции дело конечно)
  12. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Сначала года номера формировались авт-ки, в середине - одному документу был присвоен номер 2300, после этого автонумерация продолжилась с того номера, на котором остановилась до ввода документа с номером 2300. Наконец, сейчас автонумерация дошла до 0999.

    Попробывал это сделать в другой базе - тоже самое
  13. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну вообще насколько я помню система подхватывает "старший" номер. Т.е. в вашем случае 2300.... Чето тут не так. Попробуй на копии поставить для дока 2300 номер 1000 и создать новый док с попыткой записать его...
  14. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    В том то и дело что нельзя изменить мне номер документа, потому что на этот номер выписан счет, в общем это отпадает
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Просто проэксприментировать - потом можно вернуть назад
  16. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Я менял уже, следующий опять 0999
  17. TopicStarter Overlay
    spiteful41
    Offline

    spiteful41 Опытный в 1С

    Регистрация:
    24 июл 2008
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    В чем было дело.

    У подписки на событие «ПриУстановкеНовогоНомераДокумента» есть обработчик Процедура ПриУстановкеНовогоНомераДокументаПриУстановкеНовогоНомера(Источник, СтандартнаяОбработка, Префикс).

    В переменную Источник прилетает ДокументОбъект, в переменную Префикс прилетает строка. Так вот, изменение переменной Префикс влияет на переменную Источник. По окончанию работы процедуры Источник.Номер = «», другими словами, объект имеет пустой номер. Больше ни одной строчки кода в конфигураторе не выполняется! А уже платформа изменяет номер объекта на «» + «0» = «0», после чего автонумератор добавляет в свобоные уже только три места свободный номер.

    Итого: мало следить за реквизитами объекта.

Поделиться этой страницей