|
Обход данных таб части | ☑ | ||
---|---|---|---|---|
0
dred999
21.06.17
✎
14:34
|
Всем привет!
Бухгалтерия предприятия, редакция 3.0 (3.0.42.46) Есть некий документ с таб частью "Полуфабрикаты". В модуле формы заполняю эту таб часть, затем лезу в процедуру модуля объекта чтоб обойти эту таб часть а, но метод Полуфабрикаты.Выгрузить() говорит что она пустая!!! Что я не правильно делаю ? По пробовал в модуле форму после заполнения записать документ ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); И только потом идти в модуль объекта дабы обойти ее но когда делаю вызов процедуры в модуле объекта: Рек = РеквизитФормыВЗначение("Объект"); Структура = Рек.ОбойтиТабПолуфабрикат(); вообще начинает ругаться"Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!" |
|||
1
HEKPOH
21.06.17
✎
14:37
|
(0) "В модуле формы заполняю эту таб часть" - таб. часть нужно заполнять в модуле объекта
|
|||
2
polosov
21.06.17
✎
14:38
|
(1) Перегрелся чтоле?
(0) Показывай как заполняешь. И опиши чего хочешь. |
|||
3
HEKPOH
21.06.17
✎
14:39
|
(2) обоснуй
|
|||
4
polosov
21.06.17
✎
14:40
|
(3) Если ты находишься в форме, то заполняй в форме. Зачем модуль объекта?
Если надо сделать серверные вызовы - пжалста, но к модулю объекта обращаться с формы это моветон. |
|||
5
dred999
21.06.17
✎
14:41
|
(2) Ща покажу
|
|||
6
HEKPOH
21.06.17
✎
14:42
|
(4) Если ты полюбэ идешь в модуль объекта ("затем лезу в процедуру модуля объекта чтоб обойти эту таб часть"), то и заполнял бы в объекте. Не?
|
|||
7
dred999
21.06.17
✎
14:42
|
&НаСервере
Процедура ЗаполнитьТаблицуПолфабрикаты(Идентификатор,Цех,пПродукция); Отбор = Новый Структура; СтрокаПолуфабриката = Дерево.НайтиПоИдентификатору(Идентификатор); Отбор.Вставить("Номенклатура",СтрокаПолуфабриката.СтрокаНаименование); Отбор.Вставить("ЦехПроизводства",Цех); нСтроки = Объект.Полуфабрикаты.НайтиСтроки(Отбор); Если нСтроки.Количество() <> 0 Тогда нСтрока = нСтроки[0]; нСтрока.Количество = нСтрока.Количество + СтрокаПолуфабриката.Количество; Иначе НоваяСтрокаПолуфабриката = Объект.Полуфабрикаты.Добавить(); НоваяСтрокаПолуфабриката.Продукция = пПродукция; НоваяСтрокаПолуфабриката.Номенклатура = СтрокаПолуфабриката.СтрокаНаименование; НоваяСтрокаПолуфабриката.ЦехПроизводства= Цех; НоваяСтрокаПолуфабриката.Количество = СтрокаПолуфабриката.Количество; КонецЕсли; КонецПроцедуры |
|||
8
dred999
21.06.17
✎
14:43
|
а дальше лезу записываю док и лезу в модуль объекта
|
|||
9
polosov
21.06.17
✎
14:44
|
(8) Ты пакетно обрабатываешь доки чтоле?
|
|||
10
HEKPOH
21.06.17
✎
14:45
|
(7) Объект.Полуфабрикаты - это не тч, а коллекция
|
|||
11
dred999
21.06.17
✎
14:45
|
Это на форме заполняю (10)
|
|||
12
Buster007
21.06.17
✎
14:45
|
Если у тебя в нескольких местах используется заполнение ТЧ, то вероятно ты сделал эту процедуру в модуле объекта..
Для этого лучше использовать модуль менеджера. В процедуру модуля передаешь ТЧ, с которой надо что-то сделать. |
|||
13
HEKPOH
21.06.17
✎
14:45
|
(11) так я и говорю об этом. посмотри в отладчике тип Объект.Полуфабрикаты
|
|||
14
polosov
21.06.17
✎
14:47
|
(11) Не вижу причин делать это на сервере.
А что ты собрался делать в модуле объекта? Какую-то постобработку после записи? Опиши вообще задачу в целом. |
|||
15
dred999
21.06.17
✎
14:49
|
На форме заполняется ТЧ а дальше нужно обрабатывать эту таб часть несколькими дополнительными процедурами, и вывел их на в модуль объекта (14)
|
|||
16
polosov
21.06.17
✎
14:50
|
(15) В какой момент обрабатывать? При записи, при проведении?
Зачем вообще модуль объекта? |
|||
17
dred999
21.06.17
✎
14:53
|
Так. Давайте по другому пославлю вопрос).
Псоле заполнения таб части в модуле формы почему данные таб части не видны в модуле объекта? |
|||
18
dezss
21.06.17
✎
14:55
|
(17) а ты док после заполнения в модуле формы точно записываешь?
|
|||
19
dred999
21.06.17
✎
14:58
|
(18) Попытка
ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
20
dred999
21.06.17
✎
14:59
|
(18) Но после записи я не могу обратиться к процедуре на модуле объекта.
Рек = РеквизитФормыВЗначение("Объект"); Структура = Рек.ОбойтиТабПолуфабрикат(); |
|||
21
dred999
21.06.17
✎
14:59
|
Выскакивает
Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!" |
|||
22
Неверный Параметр И
21.06.17
✎
15:02
|
Зачем ты ея записываешь?
|
|||
23
dred999
21.06.17
✎
15:03
|
(22) Дабы долезть до данных из модуля объекта
|
|||
24
Неверный Параметр И
21.06.17
✎
15:06
|
(23) Запись, внезапно, нужна только для записи данных объекта в базу. Я повторюсь - зачем ты его записываешь?
|
|||
25
Неверный Параметр И
21.06.17
✎
15:07
|
Рек = РеквизитФормыВЗначение("Объект");
Структура = Рек.ОбойтиТабПолуфабрикат(); |
|||
26
dred999
21.06.17
✎
15:07
|
(24)Я не могу обойти Таб Часть в модуле объекта.
Она пустая, хотя перед этим я заполняю ее в модуле формы |
|||
27
polosov
21.06.17
✎
15:10
|
(24) Мне кажется он смеется над нами.
|
|||
28
dred999
21.06.17
✎
15:11
|
(27) Пффффф .. Нифига не пойму :(
|
|||
29
HEKPOH
21.06.17
✎
15:12
|
(26) так передай данные из реквизита формы Таблица в тч :)
|
|||
30
dred999
21.06.17
✎
15:13
|
(29) придется так и сделать. Но я так и не понял почему данные не доступны из модуля объекта
|
|||
31
HEKPOH
21.06.17
✎
15:15
|
(30) прочитай, пожл (13) и ответь на вопрос, если не трудно
|
|||
32
polosov
21.06.17
✎
15:16
|
(28) Короче так. Ты на форме. Забудь про модуль объекта.
Заполняешь свою ТЧ. Что мешает тебе ее тут же обработать? Процедуры и функции модуля формы с директивами &НаСервере и &НаСервереБезКонтекста - это не модуль объекта. Любая обработка в модуле объекта как правило производится в момент записи/проведения/отмены проведения. |
|||
33
lodger
21.06.17
✎
15:25
|
а вам бы все в управляйке делать как в обычных формах...
если вы дадите описание ситуации полностью - вам подскажут как это сделать в клиент-серверном стиле. |
|||
34
polosov
21.06.17
✎
15:50
|
(33) Онлайн-кассы в БП 2.0 не поддерживаются, вот все прогеры перманентно сидящие на обычных формах массово открывают для себя УФ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |