|   |   | 
| 
 | обработка:заполнение реквизита документа реквизитом другого документа | ☑ | ||
|---|---|---|---|---|
| 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ГБ. Оставлю на выполнение     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |