Имя: Пароль:
1C
1С v8
В обработчике подписки на обработку проведения в наборе регистра пусто
, ,
0 DEVIce
 
23.07.12
08:43
Подписка в структуре конфигурации самая последняя.
Делаю:
Движения = Источник.Движения.ПартииТоваровНаСкладахБухгалтерскийУчет
там пусто. Однако после проведения документа движение есть по регистру. При попытке прочитать предварительно данные, данные получаются предыдущего проведения. Что не есть гуд. Почему не вижу данные в наборе записей?
1 Ненавижу 1С
 
гуру
23.07.12
08:45
а если?
Источник.Движения.ПартииТоваровНаСкладахБухгалтерскийУчет.мТаблицаДвижений
2 DEVIce
 
23.07.12
08:50
(1). А какого типа там получается данные? А на эту строку не ругнулось, а на итератор ругнулось. И что это вообще за на? У набора записей регистра разве есть такое свойство?
3 Ненавижу 1С
 
гуру
23.07.12
08:52
(2) посмотри модуль набора записей
4 DEVIce
 
23.07.12
08:59
Там в этот момент неопределено. Нифига не понимаю, в какой момент можно обратиться к набору записей? В подписке на проведение уже все надобры как минимум должны быть заполнены.
5 DEVIce
 
23.07.12
09:05
Причем в этот момент в регитсре ТоварыНаскладах есть записи уже в наборе. Вообще в части регистров есть записи, в части нет.
6 DEVIce
 
23.07.12
09:05
А после проведения движения есть по всем регистрам.
7 DEVIce
 
23.07.12
09:07
Может ради оптимизации какая хрень неводома творится на уровне платформы? :)
8 Ненавижу 1С
 
гуру
23.07.12
09:09
(7) что-то я сомневаюсь, скорее на уровне решения
хоть конфигурация какая? у меня вот УТ 10.3
9 DEVIce
 
23.07.12
09:11
(8). УПП блин.

Вот нашел v8: Не видно "хозрасчетных движений"
"А если там сделано через

СоздатьНаборЗаписей() и потом

НаборЗаписей.Добавить()
НаборЗаписей.Записать();
, то ясно что в Движения.Хозрасчетный ничего не увидишь."

При этом и в базе еще ничего нет - транзакция не завершилась, поэтому НаборЗаписей.Прочитать() ничего не даст. Как быть-то?
10 Ненавижу 1С
 
гуру
23.07.12
09:12
(9) "базе еще ничего нет - транзакция не завершилась"
странные слова, но ты то в той же транзакции и должен видеть свои апдейты
11 DEVIce
 
23.07.12
09:14
(10). Если делаю Прочитать(), то вижу то что было там раньше. Хоотяяяя. Четта не так. Таам через раз, то все нормально видит, то видит пустой набор.
12 Serg_1960
 
23.07.12
09:15
Что-то часто стали об этом говорить... впрочем...

"Подписка в структуре конфигурации самая последняя" - порядок исполнения подписок неопределен (надо исходить из того, что якобы неопределен). Это раз.

Порядок "генерации" движений определяется алгоритмом (по порядку в алгоритме модуля, подписках)... а вот очередность записи в регистры каков? Именно записи в базу данных?

(10) Сорри, но на уровне БД, "в той же транзакции" - сильно сомневаюсь.
13 Ненавижу 1С
 
гуру
23.07.12
09:18
(12) а накой они тогда нужны, если в разных транзакциях?
14 DEVIce
 
23.07.12
09:22
Короче, дело такое, если Движение.Прочитать() есть:
1. Создаю новый документ, провожу в подписке пустое движение. После проведения движений нет.
2. Открываю документ, снова провожу. В подписке вижу записи в наборе. Отлично. После проведения движения есть.
3. Открываю документ, провожу, см п.1.
4. Открываю документ, провожу, см п.2
и т.д.

Если Движение.Прочитать() нет, то после проведения всегда есть движения.

Платформа 8.2.15.310. Это жесть какая-то.
15 DEVIce
 
23.07.12
09:23
Т.е. в одном случае при чтении набора он уже записан и я его прочитал и обработал. Во втором случае, набор пустой и не записан. Ля! В какой момент можно получить гарантировано записи набора?
16 Ненавижу 1С
 
гуру
23.07.12
09:23
это, свойство как выставлено у документа "Запись движений при проведении"?
17 DEVIce
 
23.07.12
09:28
(16). Записывать модифицированные.
18 Serg_1960
 
23.07.12
09:28
(15) Можно попробывать сделать так (но методисты от 1С не рекомендуют так делать):

Движения.Записать();
Движения.ПартииТоваровНаСкладахБухгалтерскийУчет.Прочитать();
19 DEVIce
 
23.07.12
09:31
(18). В этом случае я по идее должен видеть в наборе записи. Ведь если есть чего записать, то значит и набор можно перебрать.
20 Ненавижу 1С
 
гуру
23.07.12
09:38
(17) если поставить "записывать выбранные" и явно указывать Записывать=Истина?
21 hhhh
 
23.07.12
09:41
(19) там два варианта. Если в обработке проведения использовали Движения, то ты их должен видеть сразу. ЕСли через СоздатьНаборЗаписей, то чтобы увидеть, надо сделать

Движения.ПартииТоваровНаСкладахБухгалтерскийУчет.Прочитать();
22 DEVIce
 
23.07.12
09:45
(21). Я выше писал, что ели делаю через Прочитать(), то через раз вижу движения.
23 hhhh
 
23.07.12
09:46
(22) ну и что, что писал. Значит так и есть, у тебя движения там через раз.
24 DEVIce
 
23.07.12
09:47
Блииин, че делать специальный документ для допроведения - жесть.
25 DEVIce
 
23.07.12
10:02
Новые подробности. Если документ сначала снимать с проведения, а затем уже снова проводить, то все нормально. Чета тут в платформе чую косяк, потому что раньше такого не возникало и похоже что пролемы начались после перехода на 8.2.15.310.
26 Serg_1960
 
23.07.12
10:03
А для чего тебе подписка и анализ движений нужен? Движения пишутся не "от балды" "( сорри, за сленг :) Можетстоит анализировать не движения, а значения документа, на основе которых пишутся движения?
27 Ненавижу 1С
 
гуру
23.07.12
10:13
(25) предыдущая платформа какая?
28 Serg_1960
 
23.07.12
10:17
(27) Хм.. интересный вопрос :) Есть предположения или уже найдена зависимость? Озвучь предположение, не ожидая ответа тс. Я, например, с 12 платформы перепрыгнул на 15 и что мене теперь прикажите делать? :)
29 Ненавижу 1С
 
гуру
23.07.12
10:19
(28) вдруг раннее была 8.1 или совместимость? мне кажется дело в (16)
30 Serg_1960
 
23.07.12
10:24
Логично, я как-то не подумал об этом. Можно на копии попробывать отключить совместимость (может быть изменить настройки блокировки) и посмотреть появится ли "однозначность" в записи движений.
31 DEVIce
 
23.07.12
10:54
(27). Уж не помню, но вроде как 8.2.13. Дело в том что это новая вообще база, хотя конфигурация взята старая, которая переходила с 8.1 и редакции 1.2
32 DEVIce
 
23.07.12
10:54
(29). И как бы чего из этого следует?
33 DEVIce
 
23.07.12
11:32
А вообще да, у конфы стоит режим совместимости с 8.2.13
34 DEVIce
 
23.07.12
14:16
Будут еще идеи?
AdBlock убивает бесплатный контент. 1Сергей