|
Запись движений в регистр накопления | ☑ | ||
---|---|---|---|---|
0
Яна93
30.11.15
✎
15:34
|
Всем привет! У меня вопрос..как записать движения в регистр накопления из документа с табличной частью следующего вида:
Номенклатура | День 1 | День 2 | День 3 | День 4 ... | День N Где дни это даты как заголовок колонки..а в значениях самой колонки будет количество самой номенклатуры.. Регистр сведений будет следующего вида: Дата | Номенклатура | Количество.. Как будет выглядеть процедура по записи в регистр? |
|||
1
Cyberhawk
30.11.15
✎
15:37
|
Дерево реквизитов табичной части из конфигуратора покажи на картинке
|
|||
2
aleks_default
30.11.15
✎
15:39
|
Для каждого Колонка из ТабличнаяЧасть.Колонки цикл
ЧислоДень = Число(СтрЗаменить(Колонка.Имя,"День",""); День = Дата(ЧислоГод,ЧислоМесяц,ЧислоДень); КонецЦикла; |
|||
3
RomanYS
30.11.15
✎
15:41
|
Запись.Дата = НачМесяца + (инд-1)*3600*24;
Запись.Количество = Строка["День"+инд]; |
|||
4
Nuobu
30.11.15
✎
15:41
|
Для каждого Колонка из ТабличнаяЧасть.Колонки цикл
Попытка ЧислоДень = Число(СтрЗаменить(Колонка.Имя,"День",""); Исключение Продолжить; КонецПопытки; День = Дата(ЧислоГод,ЧислоМесяц,ЧислоДень); КонецЦикла; |
|||
5
aleks_default
30.11.15
✎
15:42
|
(4) списал:)
|
|||
6
Мимохожий Однако
30.11.15
✎
15:42
|
(0)А структуру регистра накопления Пушкин будет угадывать?
|
|||
7
Nuobu
30.11.15
✎
15:43
|
(5) Исправил.
|
|||
8
Nuobu
30.11.15
✎
15:43
|
(6) Регистр сведений будет следующего вида: Дата | Номенклатура | Количество..
|
|||
9
Яна93
30.11.15
✎
15:44
|
(1) http://pixs.ru/showimage/tchjpg_5914411_19695687.jpg
Документ с такой табличной частью составила сама сегодня.. |
|||
10
salvator
30.11.15
✎
15:44
|
(0) "Где дни это даты как заголовок колонки"
В заголовке именно "День 1" или именно полная дата указана как дд.мм.гггг? |
|||
11
aleks_default
30.11.15
✎
15:44
|
(7)Ой да ладно, если структура таб. части постоянна, то попытка нафиг ненужна.
|
|||
12
Яна93
30.11.15
✎
15:45
|
(6) Регистр накопления оборотный..
|
|||
13
Яна93
30.11.15
✎
15:45
|
(10) полная дата указана как дд.мм.гггг
|
|||
14
Nuobu
30.11.15
✎
15:45
|
(11) А первые три колонки?
|
|||
15
Cyberhawk
30.11.15
✎
15:45
|
Лучше бы ТЧ имела три реквизита: НомерДня, Номенклатура, Количество... а в форме бы уже "обернула" их в красивую динамически создаваемую и заполняемую ТЧ
|
|||
16
aleks_default
30.11.15
✎
15:45
|
Вернее попытка нужна не при преобразовании в число, а при преобразовании в дату.
|
|||
17
Nuobu
30.11.15
✎
15:46
|
(16) Она нужна и там и там.
|
|||
18
Яна93
30.11.15
✎
15:47
|
(15) я так не умею..есть где подобная статься? Я ни чего не находила..
|
|||
19
Мимохожий Однако
30.11.15
✎
15:47
|
(15)+100500.
|
|||
20
aleks_default
30.11.15
✎
15:48
|
Ну, блин, не на полстраницы текста же мне писать учитывая все нюансы.
Идея,короче, понятна... |
|||
21
aleks_default
30.11.15
✎
15:49
|
(15) Там дофига кода писать придется. Обработчики на все возможные события переделывать.
|
|||
22
salvator
30.11.15
✎
15:51
|
(18) Количество колонок равно количеству дней в месяце от даты документа?
|
|||
23
Cyberhawk
30.11.15
✎
15:53
|
(18) Поищи "динамическое создание элементов управления на форме" в разных вариациях на ИС
(21) Соглашусь... конечно, зависит от требований к удобству по работе с формой... судя по ТС, там нет никаких выкрутасов особых не нужно (пока) |
|||
24
Nuobu
30.11.15
✎
15:53
|
(22) Ну, только если количество дней в месяцах совпадает, то да))
|
|||
25
Cyberhawk
30.11.15
✎
15:55
|
(22) (24) Это уже рюшечки - ведь довольно просто программно изменить видимость последних колонок в таблице в зависимости от кол-ва дней в месяце
|
|||
26
Cyberhawk
30.11.15
✎
15:55
|
+(25) или еще проще - ругаться при записи из формы, если в "запрещенном" дне введены данные
|
|||
27
Яна93
30.11.15
✎
15:57
|
Так как в итоге при проведении документа записать движения? Обычный конструктор движений тут не помощник..
|
|||
28
salvator
30.11.15
✎
15:57
|
(27) См (2), (4). Проходи циклом по колонкам, выцепляй из их имени дату и пиши ее в РС
|
|||
29
Cyberhawk
30.11.15
✎
15:58
|
(27) Создаешь набор записей... далее цикл по табличной части... по каждой строке еще один цикл по дням...
|
|||
30
aleks_default
30.11.15
✎
16:00
|
(27) Может попробуешь, для начала? А то все как, да как...
|
|||
31
salvator
30.11.15
✎
16:00
|
+(28) Только если у тебя имя колонки в формате дд.мм.гггг, то писать надо что-то типа для каждой строки
Для каждого Колонка из ТабличнаяЧасть.Колонки цикл ДатаРС = Дата(СокрЛП(Колонка.Имя)+" 0:00:00"); КонецЦикла; |
|||
32
Nuobu
30.11.15
✎
16:02
|
(31) Ты представляешь имя колонки в таком формате?
|
|||
33
Мимохожий Однако
30.11.15
✎
16:06
|
(27)И всё-таки...Напиши структуру регистра.
|
|||
34
Яна93
30.11.15
✎
16:11
|
||||
35
Nuobu
30.11.15
✎
16:15
|
(34) Меня смущает ДатаПотребности.
|
|||
36
Яна93
30.11.15
✎
16:18
|
(35) Это и есть дата колонки
|
|||
37
Мимохожий Однако
30.11.15
✎
16:27
|
(34)Это "я сама"? )) Нет слов.
|
|||
38
Яна93
30.11.15
✎
16:29
|
(37) Что не так?
|
|||
39
ejikbeznojek
30.11.15
✎
16:37
|
(38)
Может лучше было бы оставить одну колонку "День" И писать набор строк в этой ТЧ с разными цифрами в этой колонке? |
|||
40
Nuobu
30.11.15
✎
16:40
|
(36) Может, Период, это дата колонки?
|
|||
41
Яна93
30.11.15
✎
16:45
|
(40) Нет...период будет начало месяца проставлено..
|
|||
42
D_E_S_131
30.11.15
✎
16:50
|
(41) А смысл?
|
|||
43
Яна93
30.11.15
✎
16:50
|
(39) Может и так оставлю..еще не определилась...зависит от того как будет проще реализовать.. пока все на стадии реализации)
|
|||
44
ejikbeznojek
30.11.15
✎
16:51
|
(43)
тогда одной строке ТЧ, будет соответствовать одна запись в регистре. |
|||
45
D_E_S_131
30.11.15
✎
16:52
|
+ (44) и можно будет движения конструктором написать. :)
|
|||
46
Яна93
30.11.15
✎
16:54
|
(44) А, не так поняла..я подумала про наименование День 1 либо полная дата в наименовании колонки...нет..каждый день в новой колонке будет... (45) я бы только рада была упростить себе жизнь)
|
|||
47
D_E_S_131
30.11.15
✎
16:58
|
(46) В документе будет ТЧ с з-мя колонками: Номенклатура, ДатаПотребности, Количество.
В шапке документа сделаешь реквизит МесяцПотребности (если уж так надо Период в движениях ставить на начало месяца). В форме документа можно сделать 2 ТЗ - в одной например отобразить номенклатуру и общее кол-во потребности в этом месяце, а в другой отобразить детализацию потребностей по дням. При открытии документа программно все это "отрисовывать". |
|||
48
Яна93
07.12.15
✎
09:05
|
Еще раз всем привет) Знаю, будете ругаться, но я пока не реализовала свой замысел касаемо записи движений в регистре накопления.. Пока возникла проблема с заполнением табличной части документа.. :) Я запросом получаю все необходимое: Номенклатуру, ее характеристику и единицу измерения, Количество и дату.. Каким образом сделать обход по результату запроса так чтобы значения встали на свои места? Я имею ввиду дата попала в заголовок колонки а номенклатура и количество в соответствующие этой дате ячейки строки...
Тип у колонок Дата число..так как там будет вносится Количество... Ни где в интернете нет подобного примера.. Номенклатура | Характеристика | ЕдИзм | Дата1 | Дата2 .. | ДатаN |
|||
49
aleks_default
07.12.15
✎
09:13
|
(48)Ну делаешь обход по ТЧ построчно, а внутри цикл как в (2). Что сложного?
|
|||
50
Яна93
07.12.15
✎
09:23
|
(49) Имеешь ввиду обход по результату запроса? В простом варианте я бы записала вот так:
Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Новая = ТЧ.Добавить(); ЗаполнитьЗначенияСвойств(Новая, Выборка); КонецЦикла; Но у меня Дату надо в наименование колонки записать..а количество под этой датой.. Я даже представить себе не могу как это записать.. |
|||
51
Яна93
07.12.15
✎
09:49
|
Наверное стоит написать эту задачу в новой ветке? Т.к. все продолжают думать, что мне нужно реализовать движение по регистру накоплений..а у меня совсем другая проблема - (48)
|
|||
52
aleks_default
07.12.15
✎
10:05
|
(50) Зависит от того какая у тебя структура результата запроса.
|
|||
53
Яна93
07.12.15
✎
10:10
|
(52) Ну вот итоговая часть запроса, в результате я получаю Номенклатуру, Характер.,ЕдИзм, Количество, Дату
ВЫБРАТЬ ВТ.Номенклатура, ВТ.ХарактеристикаНоменклатуры, СУММА(ВТ.Количество) КАК Количество, ВТ.ЕдиницаИзмерения, ВТ.Дата КАК Дата ИЗ ВТ КАК ВТ ГДЕ ВТ.Количество <> 0 СГРУППИРОВАТЬ ПО ВТ.Номенклатура, ВТ.ХарактеристикаНоменклатуры, ВТ.ЕдиницаИзмерения, ВТ.Дата УПОРЯДОЧИТЬ ПО Дата |
|||
54
Helldown
07.12.15
✎
10:13
|
Поддерживаю (39), (44), (45).
Сделай нормальную табличную часть и "отрисуй" её как требуется. |
|||
55
Яна93
07.12.15
✎
10:16
|
(54) Я так сперва и делала, но нужно сделать по другому.. как обрисовала (48)
|
|||
56
Helldown
07.12.15
✎
10:25
|
(55) Нужно сделать для чего? Для визуального представления в ТЧ документа?
|
|||
57
Яна93
07.12.15
✎
10:29
|
(56) Да, чтобы пользователь мог зайти в документ и визуально ему будет удобнее ориентироваться, заодно и номенклатура сгруппируется..одна номенклатура в одной строке и количество этой номенклатуры в этой же строке, но на разных датах..повторюсь, что даты будут в наименовании колонок.. Ни когда ни чего подобного не делала - поэтому и не знаю как реализовать
|
|||
58
aleks_default
07.12.15
✎
10:37
|
Добавь в запрос
ИТОГИ ПО Номенклатура, Характеристика,ЕдиницаИзмерения Выборка1 = Запрос.Выполнить().Выбрать (ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка1.Следующий() цикл Выборка2 = Выборка1 .Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка2.Следующий() цикл Выборка3 = Выборка2 .Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка3.Следующий() цикл Новая = ТЧ.Добавить(); ЗаполнитьЗначенияСвойств(Новая, Выборка3); Выборка = Выборка3.Выбрать() Пока Выборка.Следующий() Цикл НомерДня = ДеньВмесяце(Выборка.дата) Новая["День"+НомерДня] = Выборка.Количество; КонецЦикла; примерно так наверное есть ошибки, писал на скорую руку |
|||
59
Яна93
07.12.15
✎
10:43
|
(58) Вот это дааа) Ни когда не видела подобного)) Огромное спасибо! Буду пробовать)
|
|||
60
aleks_default
07.12.15
✎
10:47
|
(59) Я сегодня добрый, с утра :)
|
|||
61
Яна93
07.12.15
✎
10:49
|
(58) И сразу вопрос.. как я поняла ЗаполнитьЗначенияСвойств(Новая, Выборка3); мы заполним Номенклатура, Характеристика,ЕдиницаИзмерения. А после мы для них находим нужное количество..а до этого нужно будет наименование колонки переименовать в дату которую мы получим из запроса? Или я снова туплю?)
|
|||
62
aleks_default
07.12.15
✎
10:56
|
(68) Если у тебя структура колонок Табл. части такая как описано в (48), то ничего переименовывать не надо.
Я так понимаю что у теюя колонки "Дата1,Дата2,Дата3,... Дата31"?. Ну то есть 1 месяц? |
|||
63
Яна93
07.12.15
✎
11:01
|
(62) Ну я просто хочу эти Дата1, Дата2 переименовать в дни которые получу из запроса Дата..чтобы в дальнейшем использовать эти даты для записи в регистр накопления как было в исходной задаче (0)
|
|||
64
aleks_default
07.12.15
✎
11:06
|
(63)Переименовать ИМЯ колонки у тебя не получится. Можно поменять только заголовок.
|
|||
65
hhhh
07.12.15
✎
11:08
|
(64) заголовок тоже нельзя.
|
|||
66
Яна93
07.12.15
✎
11:08
|
(64) получается функцию по замене заголовка я вставляю в цикл
Пока Выборка.Следующий() Цикл {БлаБлаБла=ЗаменимЗаголовок} НомерДня = ДеньВмесяце(Выборка.дата) Новая["День"+НомерДня] = Выборка.Количество; КонецЦикла; |
|||
67
Яна93
07.12.15
✎
11:09
|
(65) Как нельзя? Я вроде находила подобное..
|
|||
68
aleks_default
07.12.15
✎
11:12
|
()Зачем? Тебе нужно один раз пройтись по колонкам и изменить заголовок, а не много раз при обходе выборки.
У тебя же на форме есть реквизит типа "Месяц"? Вот и сделай один цикл с обходом дней этого месяца. |
|||
69
Яна93
07.12.15
✎
11:14
|
(68) Так вот говорят нельзя заменить заголовок - (65)
|
|||
70
aleks_default
07.12.15
✎
11:21
|
(69) В УФ можно.
|
|||
71
Яна93
07.12.15
✎
11:23
|
(70) У меня УФ :)
|
|||
72
aleks_default
07.12.15
✎
11:24
|
(70) + Про обычные уже не помню, но по-моему тоже можно было.
|
|||
73
aleks_default
07.12.15
✎
11:27
|
В общем, мне работать надо.
Тебе полезно будет посмотретьт как реализована форма табеля в любой типовой конфе. |
|||
74
Яна93
07.12.15
✎
11:31
|
(73) Спасибо большое, Добрая душа! ;)
|
|||
75
Helldown
07.12.15
✎
12:56
|
(57) Для визуальной красоты не обязательно "уродовать" табличную часть объекта, достаточно лишь правильно визуально выводить в табличном поле то, что нужно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |