Имя: Пароль:
1C
1С v8
В консоли результат есть а в модуле нет
0 Alexey790th
 
29.07.11
10:30
Знаю знаю уже отвечали но у меня другой случай:
1 ssh2006
 
29.07.11
10:33
Более тяжелый?
2 Живой Ископаемый
 
29.07.11
10:35
значит и таблетки нужны другие
3 palpetrovich
 
29.07.11
10:36
и че?
4 Alexey790th
 
29.07.11
10:37
)) извиняюсь случайно ctrl+enter нажал пишу вопрос.....
5 hhhh
 
29.07.11
10:41
этож правда, какие таблетки надо с утра принимать, чтобы "случайно", не нарочно, нажать ctrl+enter ?
6 Maxus43
 
29.07.11
10:42
(5) Рефлекс, в скайпе сидит видимо часто
7 patapum
 
29.07.11
10:43
просто когда автор нажимал Enter, голова случайно опустилась на Ctrl )))
8 Wobland
 
29.07.11
10:44
(0) параметры. я в консоли как-то поленился МоментВремени указать, вбил дату - сильно удивлялся...
9 Alexey790th
 
29.07.11
10:53
6 - в точку :)
Общий модуль (сервер,внешнее соед, клиент(обычн),вызов серв)

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
              |    БИТ_МСФО_МеждународныйДвиженияССубконто.Регистратор
              |ИЗ
              |    РегистрБухгалтерии.БИТ_МСФО_Международный.ДвиженияССубконто(ДАТАВРЕМЯ(1, 1, 1), ДАТАВРЕМЯ(2100, 1, 1), Регистратор = &Регистратор, , ) КАК БИТ_МСФО_МеждународныйДвиженияССубконто";
Запрос.УстановитьПараметр("Регистратор", Источник.Ссылка);                
ТЗ_МСФО = Запрос.Выполнить().Выгрузить();    
Источник.Движения.БИТ_МСФО_Международный.Очистить();

Далее доказательство правильности ссылки на документ:
В отладчике дохожу до установки параметра. Запускаю второе предприятие, захожу в базу под тем же пользователем с полными правами. Во втором предприятии запускаю обработку.
В отладчике читаю уникальный идентификатор документа, передаю его в обработку:


Процедура КнопкаВыполнитьНажатие(Кнопка)
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    БИТ_МСФО_МеждународныйДвиженияССубконто.Регистратор
                  |ИЗ
                  |    РегистрБухгалтерии.БИТ_МСФО_Международный.ДвиженияССубконто(, , Регистратор = &Регистратор, , ) КАК БИТ_МСФО_МеждународныйДвиженияССубконто";
   Запрос.УстановитьПараметр("Регистратор", Док);    
   Сообщить(Запрос.Выполнить().Выгрузить().Количество());
КонецПроцедуры

Процедура ПриОткрытии()
   КлючУникальности = Новый УникальныйИдентификатор("4dfc7753-3010-11df-b86e-00034732eabe");
   Док=Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(КлючУникальности);
КонецПроцедуры

Обработка выводит "2" значит результат две строки

в отладчике проходим до последней строки:
Источник.Движения.БИТ_МСФО_Международный.Очистить();

Проверяем:
ТЗ_МСФО.Количество()=0

Повторно запускаем обработку во втором предприятии:
опять "2"

P.S. Выполняется модуль во время проведения документа. Судя по результатам обработки - часть его движений уже читается из регистров.
Платформа: 8.2.13.219
Бухгалтерия КОРП 2.0 + БИТ_МСФО (2.0.25.5)
Тестировалось на postgresql и на файловой базе
10 Fragster
 
гуру
29.07.11
10:56
обработка  - это обработка проведения? а &регистраттор - это тот документ, который мы проводим?
11 Alexey790th
 
29.07.11
10:59
Обработка - это внешняя обработка она нужна что бы снять подозрения с консоли запросов.
да &регистратор  - это док который проводим
обработка проведения здесь не видна, но в ней вызывается модуль, текст которого - сымый первый в - 0
12 Alexey790th
 
29.07.11
11:00
прошу не обращать внимания на то что тексты запроса немного отличаются. множество раз делал копипаст разных вариантов. так что дело тут не в разнице запросов
13 hhhh
 
29.07.11
11:02
(12) похоже ты действительно не проснулся. Очистить() ведь в оперативной памяти очищает, в буфере, а в базе как были 2 записи, так они и будут, пока запись движений не произойдет.
14 Alexey790th
 
29.07.11
11:03
Если в модуле написать:

Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
              |    ПоступлениеТоваровУслуг.Ссылка
              |ИЗ
              |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
              |ГДЕ
              |    ПоступлениеТоваровУслуг.Ссылка = &Регистоатор";

Тогда результат появляется. то есть он будто не видит из модуля записей в регистре
15 Alexey790th
 
29.07.11
11:05
13 нет последняя строчка в нашем примере не выполняется, она тут для того что бы было на чем остановиться отладчику - надо было пустой оператор поставить
16 hhhh
 
29.07.11
11:06
(14) так это ты документ смотришь этим запросом. Где здесь записи в регистре?
17 Alexey790th
 
29.07.11
11:08
(16) это просто проверка правильности ссылки и вообще работоспособности запроса. записи регистра в (9)
18 patapum
 
29.07.11
11:12
то есть общая ситуация такая?
1 случай: запрос выполняется в общем модуле, вызываемом во время проведения. смотрим движения документа, которого проводим
2 случай: смотрим движения дока внешней обработкой?
19 Alexey790th
 
29.07.11
11:15
(18) да. в обоих случаях информацию берем из одного регистра
20 hhhh
 
29.07.11
11:16
(17) ну там транзакция происходит. Внутри транзакции движения уже почистились, но пока транзакция не завершилась, снаружи так и будет видно 2 записи.
21 Alexey790th
 
29.07.11
11:17
(20) хорошая версия но меня смущает что:
в релизе 2.0.11.3 есть точная копия общего модуля, точная копия процедуры - и в ней все нормально видно. (началось это после обновления)
22 Alexey790th
 
29.07.11
11:20
(20) кроме того известно что:
1. до проведения снаружи записей нет
2. в отладчике перед запуском запроса снаружи движения уже есть
3. сразу после запуска запроса снаружи движения есть а внутри их не видно
23 hhhh
 
29.07.11
11:25
(22) ну это вам надо к битам обращаться, как у них там проведение настроено и в какой момент очищаются движения. Может там записать() несколько раз делается? Чего мы с вами будем гадать на кофейной гуще? Пригласите специалиста, он глянет на месте, вам расскажет.
24 Alexey790th
 
29.07.11
12:00
Да ну их пока вспомнят чего на лопатили...

Вопрос открыт, но задача решена:
этот модуль вызывается подпиской на событие проведения документа, значит сразу после ОбработкиПроведения. В старом релизе в конце обработки проведения вызывается процедура

ОбработкаПроведенияМСФО(ЭтотОбъект, Отказ, глДанныеРегистраМСФО);

именно после нее в старом релизе появляются движения, читаемые из модуля.
В новом она была отключена. Подключил - движения так же стали видны из запроса.
До сих пор не понятно почему тогда они были видны внешней обработкой ?
Впрочем для меня это уже не имеет значения. Спасибо за внимание, ваши ответы сдвинули меня с мертвой точки :)