общая переменная для всех документов #689426


#0 by stateg
Суть такова: необходима переменная, которая будет хранить порядковый номер месяца и, если месяц текущей даты не совпадает с этой переменной, то произвести_действия, переменная=текущий месяц. Сначала мой взгляд пал на общие реквизиты, но значение реквизита привязано к конкретному документу, необходимо чтобы было одно значение для всех документов. Потом подумал об использовании констант, но 1с ругается на недопустимость программной записи констант.
#1 by Ненавижу 1С
>> но 1с ругается на недопустимость программной записи констант руки надо выпрямлять
#2 by НикДляЗапросов
то произвести_действия, переменная=текущий месяц - если такое действие то просто делай его всегда
#3 by МойКодУныл
Чую, что хотят сделать сто-то уже реализованное. Границу последовательности, например.
#4 by Wobland
ну попробуй интерактивно установить значение константы
#5 by Dmitry1c
зачем?
#6 by stateg
направление мыслей понял, полез гуглить про константы номенклатурной единице присваивается номер который составляется из месяц+год+порядковый_номер, порядковый номер надо ежемесячно обнулять
#7 by 1dvd
Чудесная трава в этом году уродилась
#8 by unregistered
>>  номенклатурной единице присваивается номер который составляется из месяц+год+порядковый_номер " месяц+год" - это называется "Префикс"... В типовых есть подписка на событие ПриУстановкеНомера (ПриУстановкеКода для справочников), которая этот префикс устанавливает. В обработчике этой подписки рисуй префикс какой хочешь.
#9 by stateg
не хуже, чем в прошлом конфигурация не типовая Впаял константу короче, норм
#10 by kiruha
А зачем месяц текущий + год текущий надо хранить в константе ? Ничего не понял
#11 by stateg
храню месяц и при добавлении номера сравниваю хранимый месяц с текущим, если отличаются, то порядковый номер начинается с 1 я только учусь, с удовольствием выслушаю идеи как реализовать сей процесс рациональнее
#12 by Wobland
ПриУстановкеНомера делаешь свою магию без лишних данных
#13 by stateg
конфигурация не типовая, я уже писал
#14 by Wobland
бывает..
#15 by Rie
Я вот так и не понял... Этот порядковый номер месяца - он для всех пользователей? Или у каждого - свой? Или вообще - в пределах сеанса? И зачем производить действие Не проще ли вместо этой "переменная" везде использовать Месяц(ТекущаяДата)?
#16 by Полька
А я не поняла. Если это для того, чтобы формировать номер у номенклатурной единицы, то зачем общий реквизит для ВСЕХ документов? И если каждый месяц вновь прибывшую номенклатуру заводить по новой- для чего? Уж не методы ФИФО ЛИФО реализовать?
#17 by stateg
В общем при создании документа, табличная часть заполняется данными из другой ТЧ при этом добавляется номер в формате месяц+год+порядковый_номер (1113/5, 1113/6, 1113/7 и т.д.). Так вот в моем ТЗ есть требование чтобы каждый новый месяц нумерация (та что после слеша / ) должна начинаться заново (1213/1, 1213/2 и т.д.), вот у меня и возникла мысль хранить в константе месяц, который я буду сравнивать с Формат(ТекущаяДата, "ДФ=ММ"). Я не знаю как объяснить доступнее)
#18 by Полька
А что, по дате документа не понятно- какой месяц на дворе? :) Тогда логичнее хранить не месяц, а последний порядковый номер.
#19 by Полька
а если док задним числом делать? тогда и дату и номер
#20 by Wobland
нумерацию в пределах месяца не предлагать?
#21 by stateg
а как реализовать с помощью нумератора нумерацию строк табличной части документа?
#22 by Wobland
никак
#23 by Wobland
опля! какая-то херь в ТЧ? на зачем?
#24 by Rie
"О сколько нам открытий чудных готовит..." Вот кто готовит - тут не совсем ясно.
#25 by stateg
По дате документа не понятно надо ли обнулять нумерацию нумерация номенклатурных позиций в табличной части документа, вот зачем
#26 by Wobland
на зачем тебе нумерация номенклатурных позиций в табличной части документа?
#27 by stateg
техническое задание. Встречный вопрос: а где если не там?
#28 by Wobland
не ответил. а мне зело интересно
#29 by Wobland
внезапно одному элементу справочника может соответствовать несколько номеров. пока это смахивает на что-то неприятно пахнущее
#30 by Infsams654
+ может прочитать техническое задание повнимательнее?
#31 by stateg
Справочники тут вообще не при чем. В общем если есть ещё у кого-то желание поделиться опытом реализации единого счетчика для всех документов буду рад выслушать, на вопросы зачем ответ - "надо"
#32 by zakidonoff
К 3 вопроса: 1) Заполняется ли треба ТЧ неоперативно (задним числом)? И если да, то нужно ли отслеживать нумерацию с учётом этого? 2) Каким образом, имея в константе текущий месяц, можно понять, требуется ли заводить новый номер или нет? И как узнать последний используемый номер, если в константе только дата? 3) Хранится ли этот номер где-нибудь ещё, кроме ТЧ?
#33 by stateg
1) Да, нумерацию отслеживаю запросом (выбор последнего номера) с параметром дата 2) Если Формат(Объект.Дата, "ДФ=ММ") <> Формат(Константы.Месяц.Получить, "ДФ=ММ") Тогда вот таким, последний номер узнаю с помощью запроса с параметром дата 3) нет
#34 by Rie
А не проще ли в 2) Или в Формат есть своя непознанная прелесть?
#35 by stateg
проще, ок, но не суть же
#36 by hhhh
ну например, вот 1 ноября, а нужно сделать пару документов за октябрь: эта твоя константа идет в задницу?
#37 by KAO111
для озвученных условий константа все равно не нужна максимальный номер (или в случае пустого результата - первый) даст запрос выбрать максимум(Таблица.Номер) из Таблица где Таблица.Номер Подобно &Параметр Параметр тут "1213%", получается из даты документа
#38 by Обработка
Из-за таких кодеров "заказчики" наши становится капризными и вскую чушь требуют. Представь себе архитектору-строителю хозяин дома скажет хочу чтоб вместо фундамента был песок а вместо кирпичей глина....
#39 by Обработка
Я бы задал вопрос постановщикам зачем нумеровать ТЧ? Для каких целей. И быть может доказал бы абсурдность их хотелки.
#40 by zakidonoff
Хорошо. Автора я понял. Как бы сделал это Я. Во-первых, никаких констант. Во-вторых, создал бы подчинённый регистр сведений, который заносил бы префикс (тот самый месяц+год) в одну строку с каждой строкой номенклатуры ТЧ. В третьих, никакой порядковый номер не хранил бы в принципе. Вообще нигде. Даже в самой ТЧ - он формировался бы при выводе строки по принципу: Запрос = Новый запрос выбрать количество из регистра сведений, где НачалоМесяца(ДатаДокумента) < период <= ДатаДокумента и регистратор <> искомый объект. При выводе строки: Номер = Год(ДатаДокумента) + Месяц(ДатаДокумента) + КоличествоСтрокИзЗАпроса + НомерСтроки. ?? Профит
#41 by zakidonoff
Скорее всего, для печатной формы. Бывает, реально нужна потоковая нумерация. Не зарекайся.
#42 by stateg
Благодарю, завтра со свежими силами буду исходить от регистра сведений. Правда есть один момент, помимо самой ТЧ порядковый номер должен отображаться в отчете, поэтому видимо его всё-таки хранить надо, но с этим я разберусь, главная проблема была реализовать счетчик.
#43 by stateg
кстати на звание гуру 1с не петендую, как я сказал пока учусь, поэтому да, я "такой" кодер)
#44 by zakidonoff
В печатной форме легко и просто нумерация генерируется по тому же принципу. + при удалении изменении документов задним числом, не нужно будет перепроводить все последующие документы - номера будут сдвигаться сами в пределах текущего месяца.
#45 by stateg
не совсем понял про "регистратор <> искомый объект", что за искомый объект и как это определить в запрсое? А нельзя ли обойтись без этого и просто выбирать количество всех строк в регистре и делать инкремент на 1 для новых строк?
#46 by zakidonoff
Регистратор <> документ, в для которого производится формирование списка ТЧ. Иначе получится, что запрос будет считать количество строк включая и те, что уже есть в документе. В коде будет выражено так: Кстати, если уже есть регистр сведений или регистр накопления, фиксирующий каждую строку в ТЧ, то нового можно и не создавать
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С