Версия для печати темы (https://pro1c.org.ua/index.php?s=5efb2e4909eedf995a3d882a3648b6b6&showtopic=53844)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Префикс номеров документов в 1С 7.70.003 торговля склад для Украины?

Автор: ZUBR 28.08.19, 23:22

Здравствуйте, господа.
Я в конфигураторе написал код нового документа АктПриема. Прописал его в меню. Но к номеру этого вновь созданного документа не добавляется префикс, заданный в настройках параметров учета. Пишется просто цифровой номер и все. Еще важный момент. В новом документе АктПриема с помощью специальной кнопки через процедуру "СоздатьОбъект" я заполняю штатную Расходную накладную. В этом случае к ее номеру тоже префикс не добавляется. Но! если создавать новый документ Расходная накладная из меню, тогда все в порядке. Префикс добавляется. Короче, ко всем штатным документам при вызове их из меню добавляется префикс. К новому документу префикс не добавляется. И к штатным документам, вызываемым программно из нового документа тоже не добавляется. К номерам, имеется ввиду.
Подскажите, пожалуйста, где в данной конфигурации управление добавлением префикса к номеру. Я искал по разным ключевым словам и в глобальном модуле, и в программных модулях отдельных документов. Безуспешно. Различий в параметрах нумерации документов тоже не вижу.
Спасибо!

Автор: CobraS 29.08.19, 10:16

ZUBR @ Вчера, 23:22 * ,
Для формирования номера документа с префиксом используйте процедуру глобального модуля глУстановитьНомерДок(Контекст).

Автор: ZUBR 29.08.19, 17:32

CobraS @ Сегодня, 11:16 * ,
Я нашел эту процедуру в глобальном модуле. Но ни в одном документе не нашел ссылки на ее использование. Каким образом она используется для нумерации документов? Каков алгоритм? Не могу понять. Подскажите, или дайте, пожалуйста, ссылку, где почитать.

Автор: volodya1122 30.08.19, 11:14

ZUBR @ Вчера, 18:32 * ,

1. в каждом документа есть предопределенная процедура

Процедура ВводНового(Скопирован)

2. В ней вызывается из глобального модуля
глЗаполнитьШапку(Контекст);

3. А уже в глобальном модуле (в глЗаполнитьШапку) вызывается
глУстановитьНомерДок(Конт);


вот такая цепочка событий.

Автор: ZUBR 30.08.19, 17:11

volodya1122, большое спасибо за краткость и конкретность! Сейчас буду разбираться.

Автор: ZUBR 30.08.19, 18:40

ZUBR @ Сегодня, 18:11 * ,
Все правильно. Если в процедуру ВводНового ввести строку

глЗаполнитьШапку(Контекст);
, то при вводе нового документа он создается с номером, у которого есть префикс, определенный пользователем в настройках параметров учета.
Но есть еще один нерешенный очень важный вопрос. При вводе нового документа "Расходная накладная" из меню - в номере префикс есть, а если новый документ - та же "Расходная накладная" - вводится программно через "СоздатьОбъект" из другого документа, тогда префикса в номере "Расходная накладная" нет, а вместо него и дефиза стоят просто нули.
То есть, количество заданных разрядов сохраняется.

Процедура Расходная() 
    
Расх =    СоздатьОбъект ("Документ.РасходнаяНакладная");  
Расх.Новый();
Расх.Фирма=Константа.ОсновнаяФирма;
Расх.Валюта=Константа.БазоваяВалюта;
Расх.Курс = Константа.ОсновнаяВалюта.Курс.Получить(ТекущаяДата());
Расх.Дата_Курса=ТекущаяДата();
Расх.Склад = Константа.ОсновнойСклад;
Расх.КатегорияЦен=Константа.ЦенаУм;
...........................................................
Расх.Записать();
ОткрытьФорму(Расх.ТекущийДокумент());
КонецПроцедуры

Документ появляется, нономер без префикса.
В документе АктПриема у меня есть кнопка "Расходная". Процедура прописана. Но почему к номеру РасходнойНакладной в данном случае не цепляется префикс? А если вводить новую расходную просто из меню, тогда все в порядке? Спасибо!

Автор: ZUBR 30.08.19, 23:19

ZUBR @ Вчера, 19:40 * ,
У меня начали прописываться префиксы во всех документах. Думаю, это было связано с тем, что был установлен числовой формат поля вместо строкового. Точно не могу сказать, потому что сам я его не изменял. Вероятно, изменила сама программа, когда я пробовал прописывать разныные варианты в документы.

Автор: ZUBR 31.08.19, 21:18

Для того, чтобы появились префиксы в номере документа при вводе нового документа программно из другого документа, необходимо хотя бы раз ввести и провести этот документ (который должен вводиться программно) из меню. Потом уже нумерация начинает идти с префиксами в любом случае. Почему так - не знаю. Может, что-то где-то нужно прописать. Это для информации.

Автор: volodya1122 02.09.19, 9:48

ZUBR @ 31.08.19, 22:18 * ,

Неправильно думаєте. Попробую пояснити.
1. Якщо номер документа мав числовий формат, то там префік ніяк немажна вставити, так як в номері можуть бути тільки числа.
2. по коду із (6) префікс небуде створюватись, так як процедура ВводНового спацьовує тільки при інтерактивнім вводі документа. і відповідно не виконується функція глЗаполнитьШапку і все що в ній.
3. Нумерація у вас іде з префіксами тому що вже є 1 документ з префіксом, але не зовсім так. Система розуміє номер і префікс як одне ціле, і добавляє до максимального значення число 1 (тобро останній наприклад був ПРЕ-00005, то слідуючий буде ПРЕ-00006. але для системи ПРЕ-0005 - це тільки номер без префікса)

Автор: ZUBR 02.09.19, 18:35

volodya1122 @ Сегодня, 10:48 * , тобто, якщо я правильно зрозумів, при досягненні номера ПРЕ-9999 наступний буде ПРЕ10000? Без дефіса? Тоді це мене не дуже влаштовує. Чи можна якось вирішити цю проблему? Чи вона не вирішується в принципі?

Автор: volodya1122 02.09.19, 21:03

ZUBR @ Сегодня, 19:35 * ,

це вирушуетьсяна етапі планування конфігурації.
1. Зазвичай для документу ставлять періодичність нумірації в межах року (тобто кожного року нумерація починається з одиниці
2. Проаналізувати скільки документів даного виду в рік (з добрим запасом) ви створюєте (100, 10000, 10000000000...). відповідно і таку довжину вказати для номеру документа (не забіти врахувати кількість символів в префіксі).
3. Можливо і в процесі роботи збільшити кількіть символів в номері, але тут буде сюрприз(так як ПРЕ999 білеше ніж ПРЕ1000 - строкові значення порівнюються посимвольно, то 1С буде намагатись весь час створити один і той самий номер), тому так нерадять робити. Але як вже відбулась така ситуація, і символів нехватає, тоді потрібно збільшити кількість символів в номері і всі документи за перід (наприклад рік) перенумерувати.

ПС. Наступний після ПРЕ-9999 мав би бути ПРЕ-10000 (система добавляє одиницю тільки до числової частини коду, все інше залишає як було), але так як є обмеження на кількість символів, то останній нуль відкидається і номер буде ПРЕ-1000. Після нього знову ПРЕ-1000 і так до бескінечності

Автор: ZUBR 02.09.19, 21:31

volodya1122 @ Сегодня, 22:03 * , а чи можна зробити так, щоб через рік нумерація продовжувалась. А не починалася з початку?

Автор: volodya1122 02.09.19, 22:47

ZUBR @ Сегодня, 22:31 * ,

так, звичайно. в конфігураторі, там де реквізити шапки (трішки нижче) є розділ "Номер" і графа "періодичність" - там вибрати "по всем даного вида" - і тоді нумерація з нового року буде продовжуватись

Автор: Макс1С 02.09.19, 22:53

ZUBR @ Сегодня, 22:31 * ,
да, вот здесь можно выбрать "По всем данного вида"

Автор: ZUBR 02.09.19, 23:20

Макс1С @ Вчера, 23:53 * ,
volodya1122 @ Вчера, 23:47 * , я це бачив, але не розумів, і зараз не зовсім розумію, чому конфігуратор видає попередження, що в даному разі, якщо вибрати цей варіант, номер може бути не унікальним. Чому саме так? Що мається на увазі?

Автор: volodya1122 03.09.19, 8:02

ZUBR @ Сегодня, 0:20 * ,

Логічно подумати......
Наприклад до цього у вас була нумерація "В пределах года" тоду в 2018 році міг бути документ з номером ПРЕ-0005, і так як нумерація тільки в межах року то з наступного нумерація теж починається заново і в 2019 році знову буде локумент з номером ПРЕ-0005. Ось про це система і попереджає. Якщо у вас є такі документи в різних роках, то спершу потрібно їх перенумерувати. Якщо це новий документ і в різних роках немає однакових номерів, то можна не звертати увагу на це попередження

Автор: ZUBR 07.10.19, 16:57

Здравствуйте! Я немного доработал конфигурацию, в тестовом режиме с префиксами было все нормально. Затем я удалил все со справочников, включая тестовую фирму и ее реквизиты, удалил все документы и т.д. чтобы сохранить конфигурацию в чистом виде. Затем для пробы снова записал фирму под тестовым названием Lala. Внес по паре данных в справочники. В параметрах учета поставил префикс АСЦ. Но документы выдаются не с этим префиксом. Номера штатной расходной накладной, равно как и приходной, куда я вообще не лазил, выдаются с префиксом "Осн - " - я так понимаю от слова Основной.
А номера вновь созданного документа, в модуль которого я по совету добавил

глЗаполнитьШапку(Контекст);
начинаются с префикса "Lal-" -первые три буквы названия тестовой фирмы Lala, которую я поставил в константах, как основную.
Префикса АСЦ нет, хотя в настройках параметров учета он есть. Не могу понять, в чем проблема. Может, это как-то зависит от типа учета, или еще чего-то? Подскажите, пожалуйста!

Только что запустил совершенно чистую конфигурацию. Там вообще нет префиксов. Одни цифры в номере, даже если поставить префикс в настройках. Этот префикс ставится в номерах документов по УПР учету. Где поставить этот вид учета - УПР? Спасибо!

Я посмотрел журнал тестового проведенного документа РасходнойНакладной. Там в поле ТитУчета автоматом появился "Упр". Но префикс все равно "Осн-".
Мне вообще не ясно, может, при первом запуске конфигурации устанавливается префикс документов, а потом он не меняется уже? А у меня получается не первый запуск.

Так, У меня в расходной стояла основная фирма. Поэтому префикс там Осн-
Значит, на префикс номеров документа программа берет первых три знака из названия фирмы. А почему же не работает другой префикс, который я указал в настройках? И раньше он тоже не работал. Просто я указал в настройках раньше три первых буквы названия фирмы. А программа и сама их берет. И мне тогда показалось, что это я указал префикс. А это просто совпало.

Автор: ZUBR 07.10.19, 18:30

Карочь, ребята, долго я ковырялся и пришел к выводу, что эта система в любом случае генерирует префиксы - первые три буквы от названия основной фирмы. Причем основная фирма одна и ее нельзя создать. Можно только переименовать.

Автор: ZUBR 07.10.19, 19:59

Уважаемые господа! Прошу прощения за так мого текста. Жаль, что я не могу его удалить. В общем, результаты следующие. В моей конфигурации, независимо от того, прописан в параметрах учета префикс и какой, система автоматически присваивает префиксы к документам, состоящий из трех начальных букв основной фирмы. Основную фирму можно удалить, создав перед этим в справочнике свою фирму и записав ее в константу "ОсновнаяФирма". Почему нельзя менять префикс, я не знаю, но, в принципе, это меня тоже устраивает. Спасибо! Модераторы, прошу прощения за обилие воды. Если бы мог, почистил бы icon_beer17.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua