|
обработка:заполнение реквизита документа реквизитом другого документа | ☑ | ||
---|---|---|---|---|
0
dezomorf1c
14.02.19
✎
11:50
|
делаю обработку.На основании заказа поставщика сделан документ поступление товаров. Если в поступлении не заполнен реквизит проект, то его нужно заполнить из заказа поставщику.
как исправить ошибку? :Поле объекта не обнаружено (Следующий) Пока ДокументыПоступления.Следующий Цикл Процедура ЗаполнитьНаСервере() ДокументыПоступления = Документы.ПоступлениеТоваровУслуг.Выбрать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщику.Проект |ИЗ | Документ.ЗаказПоставщику КАК ЗаказПоставщику"; ТЗ = Запрос.Выполнить().Выгрузить(); Пока ДокументыПоступления.Следующий Цикл ЗаказПоставщику = ТЗ; Если Не ЗначениеЗаполнено(ДокументыПоступления.Проект) И ЗначениеЗаполнено(ЗаказПоставщику.Проект) Тогда ДокументОбъект = ДокументыПоступления.ПолучитьОбъект(); ДокументОбъект.Проект = ЗаказПоставщику.Проект; ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
ZDenis
14.02.19
✎
11:52
|
(0) Ужас
|
|||
2
Василий Алибабаевич
14.02.19
✎
12:00
|
(0) Не вдаваясь в детали (как сделал коллега из (1)) вот это вот : "Пока ДокументыПоступления.Следующий Цикл" должно быть записано вот так : "Пока ДокументыПоступления.Следующий() Цикл". Обратить особое внимание на скобки после слова "Следующий". Ибо оно - имя метода. И к нему нужно соответствующим образом обращаться.
|
|||
3
dezomorf1c
14.02.19
✎
12:03
|
(2) мне стыдно.
|
|||
4
Василий Алибабаевич
14.02.19
✎
12:21
|
(3) Крепитесь. Дальше будет хуже. Когда дойдете до "ДокументОбъект = ДокументыПоступления.ПолучитьОбъект();" - тогда осознаете весь трагизм ситуации. )))
|
|||
5
ZDenis
14.02.19
✎
12:25
|
(4) Раньше, свалиться уже на этом:
Если Не ЗначениеЗаполнено(ДокументыПоступления.Проект) И ЗначениеЗаполнено(ЗаказПоставщику.Проект) Тогда |
|||
6
dezomorf1c
14.02.19
✎
12:43
|
(5) да, так и случилось
|
|||
7
Василий Алибабаевич
14.02.19
✎
12:44
|
(6) Вот теперь можно начинать стыдиться.
|
|||
8
ZDenis
14.02.19
✎
12:47
|
(6) вам для начала надо осмыслить откуда, что и куда вы хотите заполнить. В настоящий момент выбираете все поступления и все заказы. Но где связь между ними? Если бы даже такая обработка сработала, то вы бы во все поступления проставили какой-то проект совсем не связанный с этим поступлением.
|
|||
9
dezomorf1c
14.02.19
✎
13:10
|
Свяжутся ли теперь проекты Проекты ?=Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту("Проект", Проект);
Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка",Проект); Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщику.Проект |ИЗ | Документ.ЗаказПоставщику КАК ЗаказПоставщику |ГДЕ | ЗаказПоставщику.Проект = &Ссылка"; |
|||
10
dezomorf1c
14.02.19
✎
13:10
|
Проект =Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту("Проект", Проект);
Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка",Проект); Запрос.Текст = "ВЫБРАТЬ | ЗаказПоставщику.Проект |ИЗ | Документ.ЗаказПоставщику КАК ЗаказПоставщику |ГДЕ | ЗаказПоставщику.Проект = &Ссылка"; |
|||
11
dezomorf1c
14.02.19
✎
13:14
|
рекв.Проект Поступления заполняется из рекв. Проект ЗаказаПоставщику
|
|||
12
ZDenis
14.02.19
✎
13:32
|
(9) Не свяжутся. Просто пройдись по реквизитам "Поступления" (визуально) и посмотри есть ли там что-то типа "ЗаказПоставщику".
Не зная конфигурации, сложно сказать как у вас там связаны документы поступления с заказами. |
|||
13
dezomorf1c
14.02.19
✎
13:45
|
(12) Да, такой реквизит имеется в Табличной части
|
|||
14
ZDenis
14.02.19
✎
13:53
|
(13) если в табличной части, значит но одно поступление может быть несколько заказов. А если реквизит "Проект" всего один, то с какого заказа его заполнять?
|
|||
15
dezomorf1c
14.02.19
✎
14:51
|
В документе ПТУ в ТЧ товары есть Заказы, но в ТЧ товары нету Проекта, поэтому на основании одного заказа создается документ один документ ПТУ, нужно из документа заказа достать значение реквизита Проект и поместить в документ ПТУ (в реквизит Проект).
|
|||
16
ZDenis
14.02.19
✎
15:10
|
(15) Что-то типа такого
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка, | ПоступлениеТоваровУслугТовары.ЗаказПоставщику.Проект КАК Проект |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка.Проект.Ссылка ЕСТЬ NULL"; ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Строка Из ТЗ Цикл Док = Строка.Ссылка.ПолучитьОбъект(); Док.Проект = Строка.Проект; Док.Записать(); КонецЦикла; |
|||
17
dezomorf1c
14.02.19
✎
15:28
|
(16) хотел с отладчиком посмотреть ваш код, а сразу ругается :
Ошибка инициализации модуля: ОбщийМодуль.РаботаСОбщимиПеременными.Модуль по причине: {ОбщийМодуль.РаботаСОбщимиПеременными.Модуль(29,8)}: Переменная не определена (глОбщиеЗначения) Кэш = <<?>>глОбщиеЗначения; {ОбщийМодуль.РаботаСОбщимиПеременными.Модуль(178,9)}: Переменная не определена (глОбщиеЗначения) Если <<?>>глОбщиеЗначения = Неопределено Тогда {ОбщийМодуль.РаботаСОбщимиПеременными.Модуль(204,8)}: Переменная не определена (глОбщиеЗначения) Если <<?>>глОбщиеЗначения = Неопределено Тогда |
|||
18
dezomorf1c
14.02.19
✎
15:31
|
проверил на двух компах
|
|||
19
dezomorf1c
14.02.19
✎
15:33
|
в любом случае , Спасибо за науку
|
|||
20
ZDenis
14.02.19
✎
15:44
|
(19) ты куда это прописала? То что я дал.
Вроде разговор про обработку был |
|||
21
dezomorf1c
14.02.19
✎
15:46
|
(20) Прописал во внешнюю обработку
|
|||
22
ZDenis
14.02.19
✎
15:48
|
а где она в общий модуль лезет?
|
|||
23
dezomorf1c
14.02.19
✎
15:54
|
(22) не знаю. в режиме управл.приложении ошибка в общем модуле, а в обычном приложении ошибки не выходит, но зависло
|
|||
24
ZDenis
14.02.19
✎
16:03
|
(23) оно не зависло, оно выполняется.
А в УП надо смотреть как процедуры названы. Там директивы должны быть &НаКлиенте, &НаСервере |
|||
25
dezomorf1c
14.02.19
✎
17:28
|
(24) Такие директивы имеются
|
|||
26
dezomorf1c
14.02.19
✎
17:30
|
у меня база тяжелая 40ГБ. Оставлю на выполнение
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |