Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > При загрузке совпадают номера документов


Автор: bucdapus 7.2.2008, 08:33
Не хочу создавать новую тему, но проблема при загрузке документов. у меня в программе номер документа может совпадать если продавец разный. и нужно документы загрузить в 1с но она не дает загружать документы с одинаковым номером,вот прошу помощи у ВАС программисты как сделать так чтобы при совпадении к номеру добавлялась буква по алфавиту, т.е документы с номерами 1,1,1 должны загрузиться как 1а,1б,1в?????????????????????

Автор: AkelaSQL 7.2.2008, 10:12
Префиксы нужно задавать в начале номера, иначе будет нарушен порядок автонумерации. Есть стандартная реализация префиксов в конфигурациях 1С. Префикс присваивается каждой из баз, если они распределенные и каждому юр. лицу, если учет ведется в разрезе нескольких ЮЛ. Формирование номера происходит примерно так:

Пример из 1С Комплексная или 1С Торговля и склад.

    Префикс = СокрЛП(Константа.ПрефиксИБ) + СокрЛП(Фирма.ЮрФизЛицо.ПрефиксНомеров);
    УстановитьНовыНомер(Префикс);

Писал по памяти, прошу прощения за неточности.

Автор: bucdapus 7.2.2008, 10:58
Так на автонумерацию нам забить она мне не нужна.
но нужно как то добавлять буквы в конец, тк приперекидке документов с номером 1 может быть и 10

Автор: BabySG 7.2.2008, 13:40
Уважаемый, вам http://www.1c-pro.ru/index.php?showtopic=10428 ответили совершенно верно, если вы не поняли ответа, стоило переспросить smile

Автор: AkelaSQL 7.2.2008, 14:24
Тогда убери в конфигураторе для этого типа документов "Контроль уникальности" для номеров и создавай хоть 100 штук.
Если всё-таки хочешь лепить буквы - додумайся сам, например можно отбирать в запросе все документы этого типа за текущий год с условием по номеру Лев(НомерДок, 'ДлинаПоля'-1) = ТекущийНомерДок; Ну а потом в зависимости от количества записей в результате запроса думай какую букву добавить (это при условии, что номер полный и всегда в конце есть буквы). Можно использовать функцию Найти(), но в запросе работает очень медленно и возможно много "ложных" вхождений.
Только я скажу тебе одно, ты себя ведёшь как "слон в посудной лавке". Есть свои подходы и стандарты в каждой среде.
Технических решений МАССА, любой сносный программер тебе вывернет это массой способов, но! Люди знающие, такой гемор не делают! Мой совет: Оставь автонумерацию 1С в покое вместе с её номерами, добавь два поля: НомерДокВход, ДатаДокВход и пиши туда свои номера! И прежде чем задать пустяковый вопрос открой любую типовую конфу и посмотри как это делают в 1С. У них не все всегда красиво и логично, но чтобы это критиковать тебе ещё нужно много учиться и писать.

Советую тест для начинающего программера:
есть переменные А и В, задача обменяться значениями без использования третьей переменной.
Хорошо развивает изворотливость.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)