|   |   | 
| 
 | общая переменная для всех документов | ☑ | ||
|---|---|---|---|---|
| 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) Регистратор <> документ, в для которого производится формирование списка ТЧ.
 Иначе получится, что запрос будет считать количество строк включая и те, что уже есть в документе. В коде будет выражено так: |Регистратор<>&Ссылка Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка); Кстати, если уже есть регистр сведений или регистр накопления, фиксирующий каждую строку в ТЧ, то нового можно и не создавать | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |