![]() |
![]() |
![]() |
|
В консоли результат есть а в модуле нет | ☑ | ||
---|---|---|---|---|
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
|
Да ну их пока вспомнят чего на лопатили...
Вопрос открыт, но задача решена: этот модуль вызывается подпиской на событие проведения документа, значит сразу после ОбработкиПроведения. В старом релизе в конце обработки проведения вызывается процедура ОбработкаПроведенияМСФО(ЭтотОбъект, Отказ, глДанныеРегистраМСФО); именно после нее в старом релизе появляются движения, читаемые из модуля. В новом она была отключена. Подключил - движения так же стали видны из запроса. До сих пор не понятно почему тогда они были видны внешней обработкой ? Впрочем для меня это уже не имеет значения. Спасибо за внимание, ваши ответы сдвинули меня с мертвой точки :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |