Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 09:49

Как грамотно организовать учет количества договоров в день?

Автор xecoder, 19 мая 2022, 09:37

0 Пользователей и 1 гость просматривают эту тему.

xecoder

Добрый день. Поставили задачу, не знаю как подступиться (стажер).
Создал печатную форму документа поставки. Номер договора в шапке вычисляется так "Дата"+"-"+"порядковый номер за день".
В день у них 5-10 договоров, нужно чтобы у каждого был разные порядковый номер за день, но! самое непонятное что они должны иметь возможность распечатать ещё раз через несколько дней от этого контрагента договор с тем же номером что был в первый тот раз.
Мне посоветовали доп.реквизит сделать или регистр сведений.
Я не знаю как это всё грамотно организовать. Если доп реквизит делать, то для следующего договора нужно обращаться куда то в регистр другого и добавлять единицу, а как узнать какой из них последний без регистра сведений.
УТ 11.4.13.209 проф.

LexaK

xecoder, как вариант, просто считать порядковый номер, за день,
если у вас не заводят договоры "задним" числом, то все должно работать,

вот простенький запрос, который возвращает порядковый номер указанного договора
Выбрать
Количество(таб.Код) как Номер
из
   Справочник.ДоговорыКонтрагентов спр
левое соединение
   Справочник.ДоговорыКонтрагентов таб
по Спр.Дата = Таб.Дата
и таб.Код <= спр.код
где
    спр.ссылка = &Договор
если помогло нажмите: Спасибо!

xecoder

LexaK, Там нюанс что нигде этот договор не учитывается, это просто распечатка в которой берутся данные из справочников. Боюсь без создания регистра сведений тут никак или запись в уже какой то существующий и предназначенный для этого.

LexaK

если помогло нажмите: Спасибо!

xecoder

LexaK, лучше использовать слово бумажка=). Они заходят в контрагента из партнеров и нажимают кнопку печать. Где печается макет. В шапке макета написано "Договор поставки №".

LexaK

xecoder, дааа,задача усложняется, получается что в разрезе Контрагента нужно хранить таблицу с двумя колонками (как минимум)
ДатаПечати (когда печатался договор)
Номер (порядковый номер, в течении дня)
(например РС.УчетПечатиДоговоров поля Контрагент, ДатаПечати, Номер)
следующий алгоритм
делаете запрос с отбор по Контрагент и ДатаПечати
если есть запись то в результате нужный Номер
если нет записи, то запросом считаете количество строчек на ДатуПечати и прибавляете 1 --- это будет полученный/новый Номер
и записываете строчку в РС Контрагент, ДатаПечати и полученный Номер

все это оформить в виде функции, вызывать при печати договора так
 
ПорядковыйНомер = ПолучитьНомерПечатногоДоговора(Контрагент, ДатаПечати);
если помогло нажмите: Спасибо!

lensky67

Можно в конце номера ставить символ "/" и порядковый номер документа за текущий день!
При создании договора, проверять на порядковый номер за текущий день, если нет, то первый документ, если есть, то +1. Встанет вопрос только при смене дата договора или заведении его задним числом

LexaK

конечно там еще куча нюансов может быть, например может ли в одного контрагента в день быть несколько (разных) договоров?
отличаются ли договора как-то? по типам? и т.д.
если помогло нажмите: Спасибо!

xecoder

LexaK, Спасибо вам всем, особенно LexaK. С их слов что может быть только один. Сейчас буду смотреть как привязать функцию создания таблица (если нет создать, если есть дописать) к кнопке печати. Как я понимаю это лучше сделать через регистр сведений?

xecoder

lensky67, Задним числом и менять они сказали ничего не будут. Идея очень хорошая, спасибо.

Теги: ут 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск