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