Имя: Пароль:
1C
 
Организация единообразной нумерации в 1С Бухгалтерии Проф
0 LRK
 
18.01.25
12:25
Бухгалтерия предприятия, редакция 3.0 (3.0.166.25)
По ТЗ требуется создать некий обобщенный документ для менеджеров, назовем его "Договор-заявка" (ДЗ), суть которого в том что менеджеры его создают, а дальше ни куда в бухгалтерию не лезут, а нажимают в ДЗ нужные кнопки и ДЗ автоматом выписывает нужные документы. (Счета на предоплату, Реализации, СЧФ, и счета на окончательную оплату по ДЗ). При этом надо что бы номера Реализации, СЧФ, СЧ были одинаковыми, а счета на авансы и счф на авансы - отдельной нумерацией). Ясно, что вопрос в префиксах 2го уровня, но как их правильно задавать, что бы не строкой вида ДокСЧ.Организация.Префикс + "АТ-00" + Прав(СЧНомер, 4)
При этом хочется так же, что бы если номер созданный нумератором для Реализации оказался занят для Счета или СЧФ, номер всей группы (Реализации, СЧФ, СЧ) сдвигался, что бы обеспечить одинаковые номера.
Вроде сам понял, что написал, может кто то подскажет как лучше сделать?
1 2S
 
18.01.25
12:28
Нормальная такая задача для джуна, дерзайте
2 AAA
 
18.01.25
12:52
Нумерация СФ выданного вообще неважна. УПД или СФ печатаются с номером из реквизита "ПредставлениеНомера"
3 Злопчинский
 
18.01.25
14:03
Все это показывает что в конторе бардак полнейший. и вся работа и все прочее идет в тотально ручном режиме. Никакой другой необходимости в одинаковости номеров - нет. При нормальной автоматизации абсолютно пофиг какая-там нумерация у какого документа (структура подчиненности, открытие родственных документов из документов-дочек/документов-родителей, быстро не получение списка документов по "признаку" итд - делает нахер не нужной всю эту галиматью с поддержкой одинаковости номеров как нумераторов "хозяйственных" операций). Для тупого кодера по тЗ - задача норм, для человека, который выбрал развиваться на ниве автоматизации - дорога в никуда. Дерзайте.
4 maxab72
 
18.01.25
16:00
"Никакой другой необходимости в одинаковости номеров - нет." Не скажи. Менеджерам когда они работают с клиентом удобнее, когда УПД или СФ и реализация имеют одинаковый номер. Поэтому это часто требование отдела продаж.
5 Гена
 
гуру
18.01.25
16:14
Чушь.
6 LRK
 
18.01.25
17:49
(3) Вы не правы! Внутри фирмы по большому счету пофиг на нумерацию, особенно если все делается автоматически, но когда действия выходят на внешний уровень начинается ерунда, в виде путаницы между счетами, актами, сч.фактурами - клиент рассказывает, что оплатил счет 546, манагер смотрит - счет не оплачен, он бежит в бухгалтерию, бухгалтерия в панике шлет акт сверки, КА отвечает что у него все оплачено, а акт вообще не с теми номерами документов, манагер бежит к боссу с жалобой на бухгалтерию, после чего выясняется что был благополучно оплачен счет 564, который соответствует акту (реализации) 546, все благополучно накидываются спиртным для поправки нервов, кроме руководителя, который ищет нового бухгалтера, которого задолбала путаница в номерах...
Просто надо понимать, что бухгалтерия и менеджемент, это не только внутренние процессы, которые решаются изменением какого то участка кода, а взаимодействие с КА, которое не всегда возможно формализовать...
7 AAA
 
18.01.25
17:53
Как страшно жить
8 d4rkmesa
 
18.01.25
22:52
(0) Чтобы обеспечивать "одинаковость" реализации и счета-фактуры, как минимум, нужно чтобы все виды документов, которые являются основанием сч-ф на реализацию и корректировку, имели свою сквозную нумерацию (т.е. один нумератор). В БП 3 нет нумераторов, поэтому его нужно будет создать и включить туда документы, навскидку: реализация товаров (Акт, накладная), корректировка реализации, передача товаров (безвозмездная), передача ОС, реализация услуг по переработке, отражение начисления НДС и, возможно, какие-то еще. "Перенос" номера из основания можно сделать в процедуре СчетФактураВыданный.ПриУстановкеНовогоНомера(...).
9 Kongo2019
 
19.01.25
00:05
(3) Нам пофигу, а контрики задолбали. Поэтому да, ввели единую нумерацию. Так что бардак он не всегда внутренний, есть и внешний.
10 LRK
 
19.01.25
09:52
(8) В смысле "нет нумераторов"? А как же документы нумеруются? Вообще как то хочется получить номера нужных документов (а у меня их три по ТЗ, поэтом подтягивать туда еще разные документы типа корректировок, безвозмездных и прочего смысла не вижу). Вообще есть возможность получить как то максимальный номер документа с определенным префиксом? Тогда задача становится тривиальной в виде назначения группе Реализация, СЧ, СЧФ максимального номера.
А, и да, если мои вопросы кажутся излишне нубскими - я только недавно начал разбираться в 8.3 до этого писал 7.7 и другие языки...
11 LRK
 
19.01.25
09:52
(9) Собственно о чем я и говорил в (6)
12 Злопчинский
 
19.01.25
15:30
(10) хорошо бы не начинать кодить-костылить, а разобраться хотя бы по верхам что как устроено. 8-ка это не 77 где все все просто ясно и понятно...
13 Serg_1960
 
19.01.25
18:20
[Не в тему]
У нас в организации так до сих пор используются наряды (наряд-заказы). Как правило, наряд-заказ "объединяет" между собой выполнения разнообразных внутренних работ, направленных на исполение какой-либо единой цели, например, выполнение заказа покупателя. Присвоение номера наряд-заказа означает что открыто финансирование на выполнение внутренних работ по исполнению заказа (например, изготовление оснастки/штампов, ремонт/модификация/переналадка станков и т.д.) Номер наряд-заказа используется во всех, так или иначе связанных между собой, документах... как видите сами, это никоем образом не связано с тем, "что в конторе бардак полнейший"(3). Это так организован документооборот в организации. Вы спросите "Почему до сих пор используются наряд-заказы?" Ну... наверное, из-за того, что не все токаря и слесаря сидят в программе 1С :)
14 d4rkmesa
 
20.01.25
11:47
(10) Изучайте предмет. https://v8.1c.ru/platforma/numerator/
Если будете продолжать в таком же духе, кому-то придется за вами все переделывать.
15 Dedal
 
20.01.25
13:30
(13) Ну так в твоем случае не все документы пытаются выстроиться в рядок как "нужно", а все документы имеют старший родительский номер. А сколько будет дочерних и какие номера никого не волнует.
Это хорошее решение кстати, лучше чем пытаться гонять номера в попытке решить поставленную задачу ТС, так как потом выяснится, что где-то нужно две Реализации и все пойдет по известному направлению. Проще во все макеты добавить "Договор-заявка номер:"
16 ptiz
 
20.01.25
13:38
(0) Номера реализации и счф одинаковые - это и так есть в типовой БП. Про сф на аванс - не знаю. Счета - сделайте с определенным префиксом + номер реализации, чтобы не путались со счетами на материалы и пр.
Связывать некую "договор заявку" с реализацией - плохо, т..к заявки приходят и уходят, а сч-ф - важный документ.
Плюс никто не запрещает по одной заявке сделать хоть 10 реализаций.
17 Eiffil123
 
20.01.25
14:27
зачем такие сложности. Пусть номерам документов, которые создаются по вашей волшебной кнопке ПЫЩЬ присваиваются номера из вашего документа "Договор-заявка". А у документов, введенных вручную будет использоваться стандартный алгоритм (если такие документы вдруг понадобятся).  
Только сделайте у вашего документа какой-то уникальный префикс (например "ДЗ-"), чтобы в случае чего нумерация между вашим документом и типовыми алгоритмами не миксовалась.
18 LRK
 
20.01.25
17:08
(14) Прекрасный пример. Как с помощью вот этого нумеровать сразу три документа прямо с первого раза понятно.
19 LRK
 
20.01.25
17:15
(16) А ничего, что в данной конторе "Договор-заявка" (или "Заявка - приложение к Договору", что собственно оформляется одним документом в 1С) это первичка, на основании которой происходит 99% всех дальнейших действий, начиная от договоренности что то сделать, до окончательных расчетов и контроля действий менеджеров?
20 Лодырь
 
21.01.25
07:14
(19) Чем вас не устраивает документ счет в таком случае?
21 d4rkmesa
 
21.01.25
08:18
(18) Так вы основ не знаете. Как будет работать заполнение номера сч-ф по документу-основанию, если такие оснований - документы нескольких типов или даже несколько документов разных типов, и это только для сч-ф на реализацию (и видов сч-ф могут быть много и ГБ с вами лично советоваться не будет, прежде чем захочет применить)? Как правильно переносить номер от основания к сч-ф, есть похожий механизм в исправлениях/исправленных сч-ф.
В 1С 8 нумерация обычно НЕ программируется (кроме префиксов), хотя в теории можно установить упр. блокировку, получить запросом последний номер по возрастанию, взять из него числовое значение и сделать +1, а потом снова собрать номер с типовыми и пользовательскими префиксами. Но так обычно делают для регистров сведений, где нужен счетчик сообщений или замена типовому механизму нумерации.
(2) В БП это вообще не так. Там в основном дергается везде, где только можно, процедура ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(...) , проверял недавно. Хотя, тенденция небольшая к использованию этого реквизита есть.
22 LRK
 
21.01.25
08:12
(20) Тем, что счет не связывает сделку (а она сквозная - от заказчика к поставщику и обратно) полностью. Там вплоть до контроля платежей и оплаты.
23 ptiz
 
21.01.25
09:32
(19) Ну так см. (13), и не надо лохматить бабушку нумерацию
24 LRK
 
21.01.25
09:39
(23) Не понял, что Вы хотели сказать и при чем тут бабушка. Основной вопрос одинаковой нумерации актов+СЧФ/УПД и счетов, уменьшение путаницы при взаимодействии с КА. Я в (6) написал, к чему может привести (и приводит) разница в номерах документов по одной сделке. И хорошо если их немного, а когда по одному КА 50-100 счетов в месяц?
25 LRK
 
21.01.25
09:44
(21) Так и вопрос то был, как сделать то что Вы написали "В 1С 8 нумерация обычно НЕ программируется (кроме префиксов), хотя в теории можно установить упр. блокировку, получить запросом последний номер по возрастанию, взять из него числовое значение и сделать +1, а потом снова собрать номер с типовыми и пользовательскими префиксами. Но так обычно делают для регистров сведений, где нужен счетчик сообщений или замена типовому механизму нумерации." грамотнее. Может есть возможность как то обратиться к нумераторам всех трех документов, получить очередные номера и создать группу с максимальным номером?
26 Гена
 
гуру
21.01.25
09:49
Нет, это даже не чушь.
У автора отобрать все сертификаты и выгнать из профессии. С волчьим билетом. В курьеры.
27 kauksi
 
21.01.25
12:02
А всего то нужен уникальный префикс для каждого менеджера, делов то...
28 Eiffil123
 
21.01.25
12:07
(26) автор должен подойти к заказчику и сказать, что 1С еще сырая и задача в ней не реализуема?
29 Гена
 
гуру
21.01.25
12:15
(27) По старому регламенту первые две буквы в нумерации официальных писем ИФНС - это ФИ (ФИО без отчества) подписанта письма, т.е. того, кто ответил. Собачка на конце - это знак того, что данный ответ исключительно в электронном виде, т.е. без бумаги.

Например, письмо ИФНС № АС-3-2/3920@ - сразу видно, что автор Андрющенко С.Н., тогдашняя зам Мишустина и нынешняя Заместитель Руководителя Аппарата Правительства Российской Федерации.
30 LRK
 
21.01.25
14:55
(27) Зачем? Я не пойму, почему все отвечают на какие то вопросы, с которыми у них ассоциируется тема, и которые они сами придумывают, начиная от того, какие сертификаты есть у автора и как их отобрать,  как организовать учет в организации, которую они занть не знают, и совсем не втыкают в тонкости ее взаимодействия с КА, но не на вопрос - как сделать, что бы трем документам были назначены одинаковые номера, не смотря на попытки пользователей эту нумерацию сбить документами, которые выписывают минуя запланированный алгоритм.
31 d4rkmesa
 
21.01.25
15:07
(30) Так вы капризничаете и не хотите вообще ничего воспринимать.
У каждого ДокументОбъект (т.е. в модуле объекта) есть обработчик ПриУстановкеНовогоНомера, пишите там свои алгоритмы как хотите. Вот пример из типовой УТ/КА/ERP (делает именно это, берет номер из документа-основания и устанавливает его с добавлением пользовательского префикса, СчетФактураВыданный.ПриУстановкеНовогоНомера(...)):

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    
    Если Исправление Тогда
        
        // Установка номера по исходному документу.
        
        УстановитьПривилегированныйРежим(Истина);
        
        Запрос = Новый Запрос("
        |ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА СчетФактураВыданный.Исправление
        |            ТОГДА СчетФактураВыданный.СчетФактураОснование
        |        ИНАЧЕ СчетФактураВыданный.Ссылка
        |    КОНЕЦ                     КАК Ссылка,
        |    СчетФактураВыданный.Номер КАК Номер
        |ПОМЕСТИТЬ ИсходныеДокументы
        |ИЗ Документ.СчетФактураВыданный КАК СчетФактураВыданный
        |ГДЕ
        |    СчетФактураВыданный.Ссылка = &СчетФактураОснование
        |;
        |////////////////////////////////////////////////////////////////////////////////
        |
        |ВЫБРАТЬ ПЕРВЫЕ 1
        |    ИсходныеДокументы.Номер КАК Номер,
        |    ЕСТЬNULL(Исправления.НомерИсправления, 0) КАК НомерИсправления
        |ИЗ
        |    ИсходныеДокументы КАК ИсходныеДокументы
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК Исправления
        |        ПО ИсходныеДокументы.Ссылка = Исправления.СчетФактураОснование
        |            И ИсходныеДокументы.Ссылка <> Исправления.Ссылка
        |            И Исправления.Исправление
        |            И Исправления.Корректировочный = &Корректировочный
        |            И НЕ Исправления.ПометкаУдаления
        |
        |УПОРЯДОЧИТЬ ПО
        |    НомерИсправления УБЫВ");
        
        Запрос.УстановитьПараметр("СчетФактураОснование", СчетФактураОснование);
        Запрос.УстановитьПараметр("Корректировочный", Корректировочный);
        
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            
            СтандартнаяОбработка = Ложь;
            
            // Установка номера и переопределение префикса информационной базы.
            Префикс = "И";
            ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации(ЭтотОбъект, СтандартнаяОбработка, Префикс);
            
            НомерБезПрефикса = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(Выборка.Номер, Истина, Истина);
            Если СтрДлина(СокрП(НомерБезПрефикса)) = 7 Тогда
                НомерБезПрефикса = Прав(НомерБезПрефикса, СтрДлина(НомерБезПрефикса)-1);
            КонецЕсли;
            Номер = Префикс + НомерБезПрефикса;
            
            НомерИсправления = Формат(Число(Выборка.НомерИсправления)+1, "ЧЦ=10; ЧДЦ=0; ЧГ=0");
            
        КонецЕсли;
        
    Иначе
        
        Префикс = "0";
        
    КонецЕсли;
    
КонецПроцедуры

зы: Забыл, как под кат добавить текст.
32 Bigbro
 
21.01.25
15:39
так в чем проблема то в итоге?
если все документы все равно создаются программно из твоей формы обработки по кнопочкам - ну так и сделай там любые проверки. добавь свой префикс чтобы было понятно что это автосозданные документы и оберни их запись в попытку исключение, чтоб от каких то неожиданностей избавиться и вперед.
33 Eiffil123
 
21.01.25
15:54
(30) в 17 всё расписано
34 LRK
 
21.01.25
17:24
(32) В итоге, проблема в том, что юзвери норовят сделать каждый раз какую то нештатную ситуацю. Ну типа взять и создать копию документа (и он обязательно окажется с зарезервированным префиксом), хотя в 8.3 с учетом двухуровневых префиксов вроде так не должно быть... наверно действительно стоит работать через исключения, создать Реализацию с очередным номером, остальные документы (если нужны) пробовать создавать с тем же номером, если не получилось, брать в обработчике исключений из нумератора документа номер которого занят новый номер документа, и уже его назначать остальным...
(33) С тем что написано в (17) изначально было понятно, вопрос был в том, что делать, если какой то юзверь запортил последовательность, как это происходит сейчас временами в 7.7 . И хорошо если косяк обнаруживается ДО передачи документов заказчику. А то потом начинаются вопросы в стиле "а зачем вы нам выписали несуществующий акт/счет/счф"... Хотя всего то делов казалось бы - не совпали номера 3х документов комплекта. Ну я писал (6)