Не стандартная нумерация документа.
По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета
- Групповая выгрузка и загрузка файлов XML для ЭДО в каталог по приказу №820 ФНС (для УТ 10.3/11, КА2, ERP2, БП3, УНФ, УПП1.3, Розница2.3). Поддержка маркировки. Прослеживание товаров.
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) в процедуре перед записью сформировать префикс:
Код подразделения (4 символа) + номер месяца (2 символа) + номер года (2 символа)
Остальное сделает программа.
В таком варианте правда на каждый префикс будет своя нумерация.
Ну или самому присвоить значение номера по указанному алгоритму.
Код подразделения (4 символа) + номер месяца (2 символа) + номер года (2 символа)
Остальное сделает программа.
В таком варианте правда на каждый префикс будет своя нумерация.
Ну или самому присвоить значение номера по указанному алгоритму.
(1) В модуле объекта документа есть процедура "ПриУстановкеНовогоНомера", в которой как раз-таки ты можешь переопределить свой префикс.
Но префикс, я думаю, у тебя должен состоять из "Код подразделения (4 символа) + номер месяца (2 символа) + номер года (2 символа)", а "номер документа в пределах года (4 символа)" ты определяешь сам, проверяя предыдущий.
Еще можешь воспользоваться нумератором. Создаешь свой нумератор с периодичностью в пределах года и устанавливаешь его в свойствах метаданных документа.
Но префикс, я думаю, у тебя должен состоять из "Код подразделения (4 символа) + номер месяца (2 символа) + номер года (2 символа)", а "номер документа в пределах года (4 символа)" ты определяешь сам, проверяя предыдущий.
Еще можешь воспользоваться нумератором. Создаешь свой нумератор с периодичностью в пределах года и устанавливаешь его в свойствах метаданных документа.
Нечто похожее у меня. Моя логика такова:
"Код подразделения" (надо полагать реквизит док-та), "номер месяца", "номер года" - это переменные факторы. И они меняются до записи дока. Значит варианта два:
- вычислить и записать Номер ПриЗаписи()
- можно и в ходе набора док-та, сделав обработчики изменения к "Подразделение" и "Дата". А они вызывают некую процу СлепитьНомер().
Осталось малое - последняя часть номера. Здесь поможет запрос вроде:
где "Префикс", это первые буквы номера.
из полученных номеров выбрать самый старший
Тут есть подлости в виде одновременной работы нескольких человек, но об этом можно позже
"Код подразделения" (надо полагать реквизит док-та), "номер месяца", "номер года" - это переменные факторы. И они меняются до записи дока. Значит варианта два:
- вычислить и записать Номер ПриЗаписи()
- можно и в ходе набора док-та, сделав обработчики изменения к "Подразделение" и "Дата". А они вызывают некую процу СлепитьНомер().
Осталось малое - последняя часть номера. Здесь поможет запрос вроде:
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 50
Док.Номер КАК Номер,
ИЗ
Документ.МойДок КАК Док
ГДЕ
Док.Номер ПОДОБНО """+Префикс+"%"""
УПОРЯДОЧИТЬ ПО
Дата УБЫВ";
Показатьгде "Префикс", это первые буквы номера.
из полученных номеров выбрать самый старший
Тут есть подлости в виде одновременной работы нескольких человек, но об этом можно позже
(7)
Если надо, чтобы документы отображались по порядку номеров (4 символа), то надо и номер документа заводить из 4-х символов, а для "хитрой" нумерации ввести реквизит документа, который заполнять по указанному принципу. И показывать его везде, где нужно, вместо реального номера.
Ну, а если и порядок в журнале должен зависеть от префикса и даты, то наоборот - ввести реквизит НомерВГоду, в который записывать последние 4 символа номера - по нему и искать максимальный.
Клиент хочет нумерацию не в пределах префикса, т.е. номер подразделения, номер месяца и года ни как не должны влиять на нумерацию.
А на порядок отображения в журнале должны влиять? А то ведь при сортировке по такому номеру документы выстроятся в первую очередь по префиксу, независимо от даты и номера в году.
Если надо, чтобы документы отображались по порядку номеров (4 символа), то надо и номер документа заводить из 4-х символов, а для "хитрой" нумерации ввести реквизит документа, который заполнять по указанному принципу. И показывать его везде, где нужно, вместо реального номера.
Ну, а если и порядок в журнале должен зависеть от префикса и даты, то наоборот - ввести реквизит НомерВГоду, в который записывать последние 4 символа номера - по нему и искать максимальный.
Я бы сделал реквизит для числового номера. При записи нового документа делаем запрос на максимальный этот реквизит, прибавляем 1, собираем префикс и номер готов.
Можно просто хранить где-то последний числовой номер, тогда возможны дырки при удалении последнего документа.
Если оставить только готовый номер, то получение последнего номера становится очень долгим.
Можно просто хранить где-то последний числовой номер, тогда возможны дырки при удалении последнего документа.
Если оставить только готовый номер, то получение последнего номера становится очень долгим.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)