Имя: Пароль:
1C
1С v8
Запись дополнительного измерения в регистр
0 Hipocrisy2013
 
06.05.13
09:54
Есть типовой регистр накопления, в него добавлено измерение, как сделать   запись по этому измерению используя типовой механизм проведения.
1 Нуф-Нуф
 
06.05.13
09:54
код написать? не?
2 Wobland
 
06.05.13
09:55
ДокументОбъект.Записать()
3 Hipocrisy2013
 
06.05.13
09:59
(1) если можешь, то напиши примерный код
4 Wobland
 
06.05.13
10:00
(3) а по аналогии
5 cw014
 
06.05.13
10:01
Создай подпиську на событие и в нем делай
6 Ненавижу 1С
 
гуру
06.05.13
10:01
зачем перепроводить документы целиком?
7 Aprobator
 
06.05.13
10:01
(0) смотря какая конфа, смотря какой регистр. Поскольку записи в некоторых регистрах формируются в общих модулях.
8 Hipocrisy2013
 
06.05.13
10:02
(4) по аналогии типовой проводки? Я логику не могу найти, где к какому измерению приписывается значение
9 Wobland
 
06.05.13
10:02
(8) найдёшь - получишь +20 к опыту
10 dmpl
 
06.05.13
10:17
(0) А вы уверены, что 1С ожидает такого подвоха? Она ведь может где-нибудь делать левое соединение в своих запросах по своему набору измерений, полагая, что это гарантирует, что левое соединение даст не более 1 строки, а тут вы со своим измерением получите 2-3-5 строк, ну и как результат - где-нибудь вылезут удвоенные-утроенные-упятеренные суммы.

Рекомендую делать реквизит, если уж надо что-то добавлять в типовой регистр.
11 Hipocrisy2013
 
06.05.13
10:29
(5)через подписку не работает
12 Wobland
 
06.05.13
10:34
(11) ну.. так, как ты делаешь, конечно, не работает
13 Hipocrisy2013
 
06.05.13
11:02
Нашёл способ без гемора, вот код может кому надо:
НЗ = Движения.ЗаказыПокупателей;
   Для Каждого СтрНЗ Из НЗ Цикл
       СтрНЗ.рздУстановкаСкидок = СтрНЗ.ЗаказПокупателя.рздУстановкаСкидок;
   КонецЦикла;
14 ДенисЧ
 
06.05.13
11:04
оййо....
15 Wobland
 
06.05.13
11:05
(13) а теперь ответь на вопрос: только заказа недостаточно?
16 Hipocrisy2013
 
06.05.13
11:07
(13) ты о чём? работает всё чётко
17 Hipocrisy2013
 
06.05.13
11:17
(15)*
18 mistеr
 
06.05.13
11:18
(10) +1
19 dmpl
 
06.05.13
11:36
(16) Ты это, и в приходе, и в расходе заполняешь? Или, как обычно?
20 Hipocrisy2013
 
06.05.13
11:46
(19) как в типовом механизме указано так и будет, в моём случае расход
21 dmpl
 
06.05.13
11:49
(20) Ты в курсе, что от этого у тебя регистр будет пухнуть, т.к. остатки не будут закрываться?
22 EugeniaK
 
06.05.13
11:51
(20)Т.е. в расходе
рздУстановкаСкидок = ЗаказПокупателя.рздУстановкаСкидок;
а в приходе
рздУстановкаСкидок = ПустоеЗначение;
Интересненько. А в остатках и то и другое с разными знаками.
23 Hipocrisy2013
 
06.05.13
12:02
(21) с чего ты взял?
24 Hipocrisy2013
 
06.05.13
12:05
я делал через подписку, движения делаются только для источника.
(22) вид движения уже указан в типовом механизме.
25 asady
 
06.05.13
12:06
(10)+1
Ээээх - Пита на тебя нет
26 Infsams654
 
06.05.13
12:25
(23) измерение рздУстановкаСкидок чем закрываться будет ?
27 EugeniaK
 
06.05.13
12:48
(13) А в чем смысл измерения, если соответсвие полей ЗаказПокупателя и рздУстановкаСкидок 1:1 ?
Лучше реквизит в этом случае.
28 Hipocrisy2013
 
06.05.13
13:42
(27) это пожелание заказчика, я просто привел пример,как можно сделать в общем, не обращайте внимание на конкретику
29 dmpl
 
06.05.13
13:44
(28) Заказчик так и сказал: "Хочу рздУстановкаСкидок в измерениях"?
30 cw014
 
06.05.13
14:03
(24) значит ты в (11) наврал
31 cw014
 
06.05.13
14:03
(24) Это первое. А второе - народ верно говорит. Заказы закрываются реализациями. В реализациях что в это измерение проставляется?
32 Hipocrisy2013
 
06.05.13
16:41
Вы бредите все походу. Я вам показал фишку как сделать запись реквизита добавленного в типовой регистр чтоб не капаться в общих модулях и не разбираться как там всё устроенно.
что вы привязались к моей задачи вот вам код:
Движение = Движения.ИмяРегистра;
   Для Каждого Стр Из Движение Цикл
       Стр.ИмяДобаленногоРеквизита= Стр.ИмяРегистра.Значение;
   КонецЦикла;
смысл такой, пишешь это в конце "обрабокапроведения" или через подписку, типовой механизм делает проводку, в твой реквизит ничего не записалось, затем ты просто дописываешь в свой реквизит тебе нужное значение
33 Wobland
 
06.05.13
16:42
(32) ты вообще ничего не понял
34 Infsams654
 
06.05.13
17:02
(33) это он про что "Я вам показал фишку как сделать запись реквизита добавленного в типовой регистр чтоб не капаться" ?
капаться или бредить ?
35 Hipocrisy2013
 
06.05.13
17:09
если у вас регистр накопления , естественно будет Движение = Движения.ИмяРегистра.ДобавитьПриход();(ДобавитьРасход()), регисрсведений то нет, в чём проблема то?
36 Wobland
 
06.05.13
17:11
по-другому. фишку только в одном месте сделал?
37 Wobland
 
06.05.13
17:12
плюс (15) и (27)
38 Hipocrisy2013
 
06.05.13
17:15
(15)и(27) заказчик так захотел
39 Wobland
 
06.05.13
17:17
(38) теперь (36)
40 Hipocrisy2013
 
06.05.13
17:23
ну да
41 Wobland
 
06.05.13
17:23
(40) двоечник
42 Hipocrisy2013
 
06.05.13
17:23
кто?
43 Hipocrisy2013
 
06.05.13
17:24
двоешник? что ли
44 Hipocrisy2013
 
06.05.13
17:25
а ну да через "ч" сор
45 Hipocrisy2013
 
06.05.13
17:25
(41) по сути то что?
46 Wobland
 
06.05.13
17:26
(45) по сути - (33)
47 Hipocrisy2013
 
06.05.13
17:29
конкретно можно? я тут не собираюсь спорить, я хочу понять в чём не так если это так
48 Wobland
 
06.05.13
17:30
(47) вдумчиво перечитай ветку, стараясь понять, что люди имели в виду
49 Hipocrisy2013
 
06.05.13
17:33
ну ВидДвижения я уже давно прописал, что ещё не так?
50 Джинн
 
06.05.13
17:40
(49) Не так еще в ДНК. Или букварь Вы скурили, когда все остальные читать учились. Одно из двух. Пардон за мой французский.
51 Hipocrisy2013
 
06.05.13
17:43
Просто все писали что у тебя ни чего не будет работать, хотя надо было просто написать, что у тебя в примере не хватает виддвижения и всё.
52 Wobland
 
06.05.13
17:45
(51) в каком месте приходуется по этому измерению? я уж молчу об остальном
53 Hipocrisy2013
 
06.05.13
17:51
(52)к чему этот вопрос?? Если ты знаешь или думаешь что , где то косяк или возможно будет, пиши сразу об этом, больше конкретики меньше воды плз
54 Wobland
 
06.05.13
17:52
(53) я уже устал другими словами говорить то, что уже сказали другие
55 Hipocrisy2013
 
06.05.13
17:59
пишу третий раз, тема про запись, а не про мой конкретный случай.
Движение = Движения.ИмяРегистра;//регистрсведений к примеру
   Для Каждого Стр Из Движение Цикл
       Стр.ИмяДобаленногоРеквизита = Значение;
   КонецЦикла;
Вопросы есть? что здесь не так?
56 Wobland
 
06.05.13
18:03
- Понятно? Ну и ладушки. Ты как сам-то? Я слышал, у тебя как бы сложности?

- Пустяки, - сказал Степа. - У големов нет проблемов.

- А… Это до тех пор, пока у матросов нет вопросов, хе-хе… Ну покедова. Пойду того… валенки чинить.

©Пелевин. Числа
57 Джинн
 
06.05.13
18:04
(55) Пишу в третий раз, тема про грабли, а не про мой конкретный случай:

Лежат грабли. Если на ногах обувь с толстой подошвой, то совершенно без проблем можно на них наступить и даже попрыгать.

Вопросы есть? что здесь не так?
58 Hipocrisy2013
 
06.05.13
18:13
Вопросов нет, значит всё ок.
59 dmpl
 
06.05.13
18:27
(32) Ты в курсе, что последовательность вызова подписок не регламентирована? Т.е., если 1С тоже подпиской делает движения - то твой код может выполниться до кода 1С. Причем это может перестать работать в любой момент.
60 dmpl
 
06.05.13
18:29
(38) Если заказчик такой умный - что же он сам все не сделал?
61 KAO111
 
06.05.13
20:28
Вот почему то мне кажется, что заказчик имел в виду что-то другое, и уж никак не измерение в регистр добавлять.

Предрекаю, что следующий исполнитель матерясь будет убирать измерение.

(0) Уж если делать подписку - то на набор записей регистра.
62 Hipocrisy2013
 
06.05.13
21:28
(60) Сделать запись в новое измерение это 0.000000000000001% того, что он хочет, а остальные 99,999999999999999% тоже ему делать?
63 ПесняПроЗайцев
 
06.05.13
22:20
(0) Разрешаю.
Как твоя контора называется, забыл..
64 Hipocrisy2013
 
06.05.13
22:38
(63) чего разрешаешь? Для того чтобы чего то забыть, надо сначала это знать...
65 dmpl
 
07.05.13
08:16
(61) Угу, в модуле набора записей - самое место дозаполнить записи набора.

(62) Ты программист или кто? Если заказчик тебе такой грамотный и до такой степени расписывает задачи - ему проще сделать все самому.

Добавлять это поле в измерение имеет смысл только если он хочет получать остатки в разрезе рздУстановкаСкидок. Однако, учитывая количество измерений у указанного регистра добавлять еще одно - дополнительный риск нарваться на непопадание в индекс, и, как следствие, ужасно медленное исполнение запросов. Это в дополнение к тому, что описано в (10).

Кстати, что ты будешь делать, если какое-нибудь чудо сменит в заказе реквизит рздУстановкаСкидок после того, как по этому заказу будут проведены документы?