Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Заполнение реквизита значениями
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
olmar
Добрый день. Сильно не бейте пожалуйста. Я не программист 1с , а сделать нужно.

Есть 1с 7.7 Комплексная переделаная полностью. Я добавил в маршрутный лист реквизит "ПримПоТоргТочка", для того, чтобы туда выводились примечания по торговой точке клиента. В моем случае это телефон и время работы. В Справочнике-Контрагенты есть у контрагента торговые точки и в свойствах торговой точки есть поле "Комментарий" , куда вносится примечание по этой торговой точке. В модуле маршрутного листа я вставил код -
тзДокДляВыбора.ПримПоТоргТочка = ТекДок.ТорговаяТочка.Комментарий;

Далее в режиме Предприятия при формировании маршрутного листа нажимаю кнопочку "Заполнить" - открывается модальное окно "Выбор отгрузки" где мой созданный столбец "ПримПоТоргТочка " нормально заполняется данными из поля "Комментарий" по торговой точке. Я выбираю торговые точки, нажимаю кнопочку "Выбор", модальное окно "Выбор отгрузки " закрывается, все столбцы в маршрутном листе заполняются данными, а вот мой столбец "ПримПоТоргТочка " так и остается пустым. Естественно и на печать идет тоже пустым. Получается, что в модальном окне "ПримПоТоргТочка" заполняется нормально, а вот дальше уже два дня не могу понять что и где писать в модуле. Задача чувствую настолько легкая, а как сделать.... Не могу. Большая просьба помогите......

Перем СписокДействий, СтараяДата, НачальнаяДатаДокумента, ДостРедактирование;
Перем тзСоставБыло;

// ===============================
Процедура ИзмДатаПо()
    Если ДатаПо < ДатаДок Тогда
        ДатаПо    = ДатаДок;
    КонецЕсли;
КонецПроцедуры

// ===============================
Процедура ИзмДатаДок()
    глПриИзмененииДатыДокумента(Контекст, СтараяДата);
    ИзмДатаПо();
КонецПроцедуры

// ===============================
Процедура ВводНового(Скопирован)
    глЗаполнитьШапку(Контекст);
    Если Скопирован = 1 Тогда
        СтатусВозврата(0);;
        Возврат;
    КонецЕсли;
    Фирма = глВосстановитьЗначение(Контекст,"Фирма");
    глУстановитьНомерДок(Контекст);
    ИзмДатаПо();
КонецПроцедуры

// ===============================
Процедура ПриОткрытии()
    глПроверкаДатыДок(Контекст,"Открытие",,ТекущийДокумент());
    СписокДействий = глПолучитьСписокДействий("      
        |ДвиженияДокумента,
        |ОткрытьВЖурнале",Форма.ТолькоПросмотр());

    НачальнаяДатаДокумента    = ДатаДок;
    СтараяДата                    = ДатаДок;
    // Если открыли только на просмотр, то надо кнопки сделать недоступными
    Если Форма.ТолькоПросмотр()=1 Тогда
        Форма.кОК.Доступность(0);
        Форма.кФирма.Доступность(0);                       
        Форма.КнопкаПоУмолчанию("кЗакрыть");
        ДостРедактирование = 0;
    Иначе
        Форма.КнопкаПоУмолчанию("кОК");
        ДостРедактирование = 1;
    КонецЕсли;
    
    тзСоставБыло    = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(тзСоставБыло);
    Если Проведен() = 0 Тогда
        тзСоставБыло.УдалитьСтроки();
    КонецЕсли;
КонецПроцедуры // ПриОткрытии

// ===============================
Процедура ИзмФирма()    
    глУстФирма(Контекст);
КонецПроцедуры

// ===============================
Процедура ПриЗаписи()
    глПроверкаДатыДок(Контекст,"Запись",,ТекущийДокумент());
    Автор = глПользователь;            
    Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
        СтатусВозврата(0);
    КонецЕсли;
    Состояние("Анализируются изменения состава документа");
    ИзмененияОЛЕ= 0;
    тзСоставНов    = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(тзСоставНов);
    тзСоставНов.НоваяКолонка("Изменено","Число",1,0);
    тзСоставНов.НоваяКолонка("Обработано","Число",1,0);
    тзСоставБыло.НоваяКолонка("Обработано","Число",1,0);
    тзСоставБыло.ВыбратьСтроки();
    Пока тзСоставБыло.ПолучитьСтроку() = 1 Цикл
        НомСтр    = 0;
        Если тзСоставНов.НайтиЗначение(тзСоставБыло.ДокНомер, НомСтр, "ДокНомер") = 1 Тогда
            тзСоставНов.ПолучитьСтрокуПоНомеру(НомСтр);
            Если тзСоставНов.Доставлено <> тзСоставБыло.Доставлено Тогда
                тзСоставНов.Изменено    = 1;
                Если ПустоеЗначение(тзСоставНов.ДокСсылка) = 1 Тогда
                    ИзмененияОЛЕ    = ИзмененияОЛЕ + 1;
                КонецЕсли;
            КонецЕсли;
            тзСоставНов.Обработано    = 1;
            тзСоставБыло.Обработано    = 1;
        КонецЕсли;
    КонецЦикла;
    
    тзСоставНов.ВыбратьСтроки();
    Пока тзСоставНов.ПолучитьСтроку() = 1 Цикл
        Если тзСоставНов.Обработано = 0 Тогда
            тзСоставНов.Изменено    = 1;
            Если ПустоеЗначение(тзСоставНов.ДокСсылка) = 1 Тогда
                ИзмененияОЛЕ    = ИзмененияОЛЕ + 1;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Если ИзмененияОЛЕ = 0 Тогда
        тзСоставБыло.ВыбратьСтроки();
        Пока тзСоставБыло.ПолучитьСтроку() = 1 Цикл
            Если тзСоставБыло.Обработано = 1 Тогда
                Продолжить;
            КонецЕсли;
            Если ПустоеЗначение(тзСоставБыло.ДокСсылка) = 1 Тогда
                ИзмененияОЛЕ    = ИзмененияОЛЕ + 1;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    // передаем изменения в РН
    ДокРН    = СоздатьОбъект("Документ.Т_РасходнаяНакладная");
    ДокРР    = СоздатьОбъект("Документ.Т_РасходнаяРеализатора");
    Если ИзмененияОЛЕ > 0 Тогда
        БухгОЛЕ        = глБазаОлеОткрыть(Фирма);
        Если ПустоеЗначение(БухгОЛЕ) = 0 Тогда
            РнОле        = БухгОЛЕ.CreateObject("Документ.Т_РасходнаяНакладная");
            РрОле        = БухгОЛЕ.CreateObject("Документ.Т_РасходнаяРеализатора");
            ДаОле        = БухгОЛЕ.EvalExpr("Да");
            НетОле    = БухгОЛЕ.EvalExpr("Нет");
        КонецЕсли;
    КонецЕсли;
    тзСоставНов.ВыбратьСтроки();
    Пока тзСоставНов.ПолучитьСтроку() = 1 Цикл
        Если тзСоставНов.Изменено = 0 Тогда
            Продолжить;
        КонецЕсли;
        Если ПустоеЗначение(тзСоставНов.ДокСсылка) = 0 Тогда
            ТекДок    = ?(тзСоставНов.РР=0, ДокРН, ДокРР);
            // Это документ текущей базы
            Если ТекДок.НайтиДокумент(тзСоставНов.ДокСсылка) = 1 Тогда
                Если ТекДок.ДатаДоставки <= ДатаДок Тогда
                    ТекДок.Доставлено    = тзСоставНов.Доставлено;
                    ТекДок.ДатаДоставки= ДатаДок;
                    ТекДок.Записать();
                КонецЕсли;
            КонецЕсли;
        Иначе // это документ ОЛЕ базы
            Если ПустоеЗначение(БухгОЛЕ) = 1 Тогда
                Продолжить;
            КонецЕсли;
            ТекДок    = ?(тзСоставНов.РР=0, РнОле, РрОле);
            Если ТекДок.ВыбратьПоНомеру(тзСоставНов.ДокНомер, ДатаС) = 1 Тогда
                ТекДок.ПолучитьДокумент();
                Если ТекДок.ДатаДоставки <= ДатаДок Тогда
                    Если тзСоставНов.Доставлено = Да Тогда
                        ТекДок.Доставлено    = ДаОле;
                    ИначеЕсли тзСоставНов.Доставлено = Нет Тогда
                        ТекДок.Доставлено    = НетОле;
                    Иначе
                        ТекДок.Доставлено    = 0;
                    КонецЕсли;
                    ТекДок.ДатаДоставки    = ДатаДок;
                    ТекДок.Записать();
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    // откатаем ситуацию, что какую-то РН просто удалили из ТЧ этого документа
    тзСоставБыло.ВыбратьСтроки();
    Пока тзСоставБыло.ПолучитьСтроку() = 1 Цикл
        Если тзСоставБыло.Обработано = 1 Тогда
            Продолжить;
        КонецЕсли;
        Если ПустоеЗначение(тзСоставБыло.ДокСсылка) = 0 Тогда
            // Это документ текущей базы
            ТекДок    = ?(тзСоставБыло.РР=0, ДокРН, ДокРР);
            Если ТекДок.НайтиДокумент(тзСоставБыло.ДокСсылка) = 1 Тогда
                Если ТекДок.ДатаДоставки <= ДатаДок Тогда
                    ТекДок.Доставлено    = 0;
                    ТекДок.ДатаДоставки= 0;
                    ТекДок.Записать();
                КонецЕсли;
            КонецЕсли;
        Иначе // это документ ОЛЕ базы
            Если ПустоеЗначение(БухгОЛЕ) = 1 Тогда
                Продолжить;
            КонецЕсли;
            ТекДок    = ?(тзСоставБыло.РР=0, РнОле, РрОле);
            Если ТекДок.ВыбратьПоНомеру(тзСоставБыло.ДокНомер, ДатаС) = 1 Тогда
                ТекДок.ПолучитьДокумент();
                Если ТекДок.ДатаДоставки <= ДатаДок Тогда
                    ТекДок.Доставлено    = 0;
                    ТекДок.ДатаДоставки= 0;
                    ТекДок.Записать();
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    БухгОЛЕ    = 0;
    тзСоставНов.УдалитьКолонку("Изменено");
    тзСоставНов.УдалитьКолонку("Обработано");
    тзСоставНов.Выгрузить(тзСоставБыло); // меняем тзСоставБыло - таким образом учитываем что ч-к может перезаписывать документы не выходя из него
   глСохранитьЗначение(Контекст,"Фирма",Фирма);
КонецПроцедуры

// ===============================
Процедура ПриВводеСтроки()
    СтатусВозврата(0);
КонецПроцедуры    // ПриВводеСтроки

// ===============================
Функция ДокОле()
    Возврат ?(ПустоеЗначение(ДокСсылка)=1, 2, 0);
КонецФункции    // ДокОле

// ===============================
Процедура Заполнить()
    тзДокСостав        = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(тзДокСостав);
    тзДокДляВыбора    = СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(тзДокДляВыбора);
    тзДокДляВыбора.УдалитьСтроки();
    тзДокДляВыбора.УдалитьКолонку(12);
    тзДокДляВыбора.УдалитьКолонку(1);
    тзДокДляВыбора.НоваяКолонка("Сумма","Число",12,2);
    тзДокДляВыбора.НоваяКолонка("Флаг","Число",1,0);  
    
    
    
    // заполняем тзДокДляВыбора данными текущей базы
    Дата1            = ДобавитьМесяц(ДатаС, -1);
    ТекстЗапр    = "
        |Период с Дата1 по ДатаПо;
        |ОбрабатыватьДокументы Проведенные;
        |ДокНомер    = Документ.МаршрутныйЛист.ДокНомер;
        |Доставлено    = Документ.МаршрутныйЛист.Доставлено;
        |Группировка ДокНомер;
        |Функция Доставка = Максимум(Доставлено);
        |";
    ЗапрМЛисты    = СоздатьОбъект("Запрос");
    Если ЗапрМЛисты.Выполнить(ТекстЗапр) = 0 Тогда
        Сообщить("Запрос по документам МаршрутныйЛист","!");
        Возврат;
    КонецЕсли;
        
    ТекстЗапр    = "
        |Период с ДатаС по ДатаПо;
        |ОбрабатыватьДокументы Проведенные;
        |Док    = Документ.Т_РасходнаяНакладная.ТекущийДокумент, Документ.Т_РасходнаяРеализатора.ТекущийДокумент;
        |Группировка Док;
        |";    
    ЗапрОтгрузки    = СоздатьОбъект("Запрос");
    Если ЗапрОтгрузки.Выполнить(ТекстЗапр) = 0 Тогда
        Сообщить("Запрос по документам Т_РасходнаяНакладная, Т_РасходнаяРеализатора","!");
        Возврат;
    КонецЕсли;
    
    ЭтоЦентрРБД    = ТекущаяИБЦентральная();
    ДостПусто    = ПолучитьПустоеЗначение("Перечисления.ДаНет");
    СпрКатег        = СоздатьОбъект("Справочник.КатегорииТорговыхТочек");
    

    
    Пока ЗапрОтгрузки.Группировка(1) = 1 Цикл
        ТекДок    = ЗапрОтгрузки.Док;
        Если ТекДок.Доставлено = Да Тогда
            Продолжить;
        КонецЕсли;
        // возвраты поставщикам игнорируем
        Если ТекДок.Вид() = "Т_РасходнаяНакладная" Тогда
            Если ТекДок.ВидОперации = 1 Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        // обрабатываем только документы, связанные со складами текущего узла РБД
        // учтем, что документы по филиалу могут быть сделаны и в центре
        Если ЭтоЦентрРБД = 1 Тогда
            Если ПустоеЗначение(ТекДок.Склад.Филиал) = 0 Тогда
                Продолжить;
            КонецЕсли;
        Иначе
            Если глСкладыФилиала.НайтиЗначение(ТекДок.Склад.Филиал) = 0 Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        
        Если ПустоеЗначение(Маршрут) = 0 Тогда
            ЕстьКатег    = 0;
            СпрКатег.ИспользоватьВладельца(ТекДок.ТорговаяТочка);
            СпрКатег.ВыбратьЭлементы();
            Пока СпрКатег.ПолучитьЭлемент() = 1 Цикл
                Если СпрКатег.Категория = Маршрут Тогда
                    ЕстьКатег    = 1;
                    Прервать;
                КонецЕсли;
            КонецЦикла;
            Если ЕстьКатег = 0 Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        ЗапрМЛисты.вНачалоВыборки();
        Если ЗапрМЛисты.Получить(ТекДок.НомерДок) = 1 Тогда
            Если (ЗапрМЛисты.Доставлено = Да) Или (ЗапрМЛисты.Доставлено = ДостПусто) Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        НомСтр    = 0;
        Если тзДокСостав.НайтиЗначение(ТекДок, НомСтр, "ДокСсылка") = 1 Тогда
            Продолжить;
        КонецЕсли;
        тзДокДляВыбора.НоваяСтрока();
        тзДокДляВыбора.ДокНомер        = ТекДок.НомерДок;
        тзДокДляВыбора.ДокСсылка    = ТекДок;
        тзДокДляВыбора.РР                = ?(ТекДок.Вид()="Т_РасходнаяНакладная", 0 , 1);
        тзДокДляВыбора.Контрагент    = ТекДок.Контрагент;
        тзДокДляВыбора.ТТ                = ТекДок.ТорговаяТочка;  
        
        //=================================================================    
                            //    тзДокДляВыбора.ПримПоТоргТочка = ТекДок.ТорговаяТочка.Комментарий;
                                //    тзДокСостав.ПримПоТоргТочка = ТекДок.ТорговаяТочка.Комментарий;
        //=================================================================                        
                                
                                
        ТекКво    = 0;
        ТекВес    = 0;
        
            //=================================================================
        //ТекПримПоТоргТочка = "";
            //=================================================================
        
        ТекДок.ВыбратьСтроки();                                                
        
        
        Пока ТекДок.ПолучитьСтроку() = 1 Цикл
            Если ПустоеЗначение(ТекДок.Товар) = 1 Тогда
                Продолжить;
            КонецЕсли;
            ТекВес    = ТекВес + ТекДок.Товар.Вес*ТекДок.Кво*ТекДок.Коэффициент;
            ТекКво    = ТекКво + ТекДок.Кво*ТекДок.Коэффициент;
            
                //=================================================================
            //ТекПримПоТоргТочка =  ТекДок.ТорговаяТочка.Комментарий;                
                //=================================================================
            
        КонецЦикла;
        тзДокДляВыбора.Вес    = ТекВес;
        тзДокДляВыбора.Штук    = ТекКво;
        тзДокДляВыбора.Сумма    = ТекДок.Итог("СуммаСНДС");
        тзДокДляВыбора.Прим    = ?(ТекДок.Глубина<2, "оплата по факту", "");      
        
        
        //=================================================================
        
        тзДокДляВыбора.ПримПоТоргТочка = ТекДок.ТорговаяТочка.Комментарий;  
        
        //=================================================================    
        
    КонецЦикла;
    ЗапрОтгрузки    = 0;
    
    // заполняем тзДокДляВыбора данными ОЛЕ базы
    СпрКонтр        = СоздатьОбъект("Справочник.Контрагенты");
    СпрТТ            = СоздатьОбъект("Справочник.ТорговыеТочки");
    СпрПримПоТоргТочка =   СоздатьОбъект("Справочник.ТорговыеТочки");
    
    
    БухгОЛЕ        = глБазаОлеОткрыть(Фирма);
    Если ПустоеЗначение(БухгОЛЕ) = 0 Тогда
        ДаОле        = БухгОЛЕ.EvalExpr("Да");
        СпрКатег    = БухгОЛЕ.CreateObject("Справочник.КатегорииТорговыхТочек");
        
        Для ч1 = 1 По 2 Цикл
            РнОле        = БухгОЛЕ.CreateObject(?(ч1=1, "Документ.Т_РасходнаяНакладная", "Документ.Т_РасходнаяРеализатора"));
            РнОле.ВыбратьДокументы(ДатаС, ДатаПо);
            Пока РнОле.ПолучитьДокумент() = 1 Цикл
                Если РнОле.Проведен() = 0 Тогда
                    Продолжить;
                КонецЕсли;
                Если РнОле.ВидОперации = 1 Тогда // возвраты поставщикам игнорируем
                    Продолжить;
                КонецЕсли;
                Если РнОле.Доставлено = ДаОле Тогда
                    Продолжить;
                КонецЕсли;
                Если ПустоеЗначение(Маршрут) = 0 Тогда
                    ЕстьКатег    = 0;
                    СпрКатег.ИспользоватьВладельца(РнОле.ТорговаяТочка);
                    СпрКатег.ВыбратьЭлементы();
                    Пока СпрКатег.ПолучитьЭлемент() = 1 Цикл
                        Если СпрКатег.Категория.Наименование = Маршрут.Наименование Тогда
                            ЕстьКатег    = 1;
                            Прервать;
                        КонецЕсли;
                    КонецЦикла;
                    Если ЕстьКатег = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                КонецЕсли;
                // проверим внесен ли уже этот документ в маршрутные листы
                ЗапрМЛисты.вНачалоВыборки();
                Если ЗапрМЛисты.Получить(РнОле.НомерДок) = 1 Тогда
                    Если (ЗапрМЛисты.Доставлено = Да) Или (ЗапрМЛисты.Доставлено = ДостПусто) Тогда
                        Продолжить;
                    КонецЕсли;
                КонецЕсли;
                НомСтр    = 0;
                Если тзДокСостав.НайтиЗначение(РнОле.НомерДок, НомСтр, "ДокНомер") = 1 Тогда
                    Продолжить;
                КонецЕсли;
                
                // найдем соответствие контрагента
                ОлеКонтрагент    = РнОле.Контрагент;
                ТекКонтрагент    = 0;
                
                Если ПустоеЗначение(ОлеКонтрагент.ЕДРПОУ) = 0 Тогда
                    Если СпрКонтр.НайтиПоРеквизиту("ЕДРПОУ", ОлеКонтрагент.ЕДРПОУ, 1) = 1 Тогда
                        ТекКонтрагент    = СпрКонтр.ТекущийЭлемент();
                    КонецЕсли;
                КонецЕсли;
                
                Если (ПустоеЗначение(ТекКонтрагент) = 1) И (ОлеКонтрагент.КодВКПК > 0) Тогда
                    Если СпрКонтр.НайтиПоРеквизиту("КодВКПК", ОлеКонтрагент.КодВКПК, 1) = 1 Тогда
                        ТекКонтрагент    = СпрКонтр.ТекущийЭлемент();
                    КонецЕсли;
                КонецЕсли;
                
                Если ПустоеЗначение(ТекКонтрагент) = 1 Тогда
                    Если СпрКонтр.НайтиПоНаименованию(ОлеКонтрагент.Наименование, 0, 0) = 1 Тогда
                        ТекКонтрагент    = СпрКонтр.ТекущийЭлемент();
                    КонецЕсли;
                КонецЕсли;
                
                Если ПустоеЗначение(ТекКонтрагент) = 1 Тогда
                    СпрКонтр.Новый();
                    СпрКонтр.Наименование        = СокрЛП(РнОле.Контрагент.Наименование) + " OLE";
                    СпрКонтр.ПолнНаименование    = СпрКонтр.Наименование;
                    СпрКонтр.ЕДРПОУ                = ОлеКонтрагент.ЕДРПОУ;
                    СпрКонтр.КодВКПК                = ОлеКонтрагент.КодВКПК;
                    СпрКонтр.Записать();
                    ТекКонтрагент    = СпрКонтр.ТекущийЭлемент();
                    Сообщить("В основной базе создан контрагент ["+Строка(ТекКонтрагент)+"]");
                КонецЕсли;

                Если ПустоеЗначение(ТекКонтрагент) = 1 Тогда
                    Продолжить;
                КонецЕсли;
                
                // найдем соответствие ТТ
                ОлеТТ    = РнОле.ТорговаяТочка;
                ТекТТ    = 0;
                СпрТТ.ИспользоватьВладельца(ТекКонтрагент);
                Если (ОлеТТ.КодВКПК > 0) И (СпрТТ.НайтиПоРеквизиту("КодВКПК", ОлеТТ.КодВКПК, 0) = 1) Тогда
                    ТекТТ    = СпрТТ.ТекущийЭлемент();
                ИначеЕсли СпрТТ.НайтиПоНаименованию(СокрЛП(ОлеТТ.Наименование), 1, 0) = 1 Тогда
                    ТекТТ    = СпрТТ.ТекущийЭлемент();
                Иначе
                    СпрТТ.Новый();
                    СпрТТ.Наименование    = СокрЛП(ОлеТТ.Наименование) + " OLE";
                    СпрТТ.Записать();
                    ТекТТ    = СпрТТ.ТекущийЭлемент();
                    Сообщить("В основной базе создана ТТ ["+Строка(ТекТТ)+"] контрагента ["+Строка(ТекКонтрагент)+"]");
                КонецЕсли;
                
                // запишем данные в тзДокДляВыбора
                тзДокДляВыбора.НоваяСтрока();
                тзДокДляВыбора.ДокНомер        = РнОле.НомерДок;
                тзДокДляВыбора.РР                = ч1 - 1;
                тзДокДляВыбора.Контрагент    = ТекКонтрагент;
                тзДокДляВыбора.ТТ                = СпрТТ.ТекущийЭлемент();
                
                
                    
                ТекКво    = 0;
                ТекВес    = 0;
                РнОле.ВыбратьСтроки();
                Пока РнОле.ПолучитьСтроку() = 1 Цикл
                    Если ПустоеЗначение(РнОле.Товар) = 1 Тогда
                        Продолжить;
                    КонецЕсли;
                    ТекВес    = ТекВес + РнОле.Товар.Вес*РнОле.Кво*РнОле.Коэффициент;
                    ТекКво    = ТекКво + РнОле.Кво*РнОле.Коэффициент;
                КонецЦикла;
                тзДокДляВыбора.Вес    = ТекВес;
                тзДокДляВыбора.Штук    = ТекКво;
                тзДокДляВыбора.Сумма    = РнОле.Итог("СуммаСНДС");
                тзДокДляВыбора.Прим    = ?(РнОле.Глубина<2, "оплата по факту", "");
                
            //=================================================================
            //    тзДокДляВыбора.ПримПоТоргТочка = ТекДок.ТорговаяТочка.Комментарий;
            //=================================================================    
            КонецЦикла;
        КонецЦикла;
        БухгОЛЕ.ЗавершитьРаботуСистемы(0);
        БухгОЛЕ    = 0;
    КонецЕсли;

    Если тзДокДляВыбора.КоличествоСтрок() > 0 Тогда
        тзДокДляВыбора.Сортировать("Контрагент,ТТ,ДокНомер,ПримПоТоргТочка");
        спПараметры    = СоздатьОбъект("СписокЗначений");
        спПараметры.Установить("Контекст",Контекст);
        спПараметры.Установить("тзДляВыбора",тзДокДляВыбора);
        ОткрытьФормуМодально("Обработка.ВыборОтгрузки", спПараметры);
    КонецЕсли;
КонецПроцедуры

// ===============================
Процедура Печать()
    Таб = СоздатьОбъект("Таблица");
    Таб.ПовторятьПриПечатиСтроки(3,3);
    Таб.ВывестиСекцию("Шапка");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВывестиСекцию("Дно");
    Таб.Опции(0,0,3,0);
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ПараметрыСтраницы(1,,,,,,,,,1,,);
    Таб.ТолькоПросмотр(1);                                                                  
    Таб.Показать("Расчет з/п ТП", "");
КонецПроцедуры

// ===============================
Функция УстДоступность()
    Форма.Виновный.Доступность(?(Доставлено=Нет, 1, 0));
    Возврат "";
КонецФункции

// ===============================
Процедура ИзмДоставлено()
    Если Доставлено = Да Тогда
        Виновный    = 0;
    КонецЕсли;
КонецПроцедуры

// ===============================
Процедура УстДоставлено()
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если Доставлено = Нет Тогда
            Продолжить;
        КонецЕсли;
        Доставлено    = Да;
    КонецЦикла;
КонецПроцедуры



 i 

Выделяйте код!
 
Ardi
фото макета.
olmar
Спасибо, что откликнулись.
Вот скрины.
[я не читал ваши правила, поэтому картинки домыслите сами]
Ardi
Посмотрел - многа букв.
olmar
Цитата(olmar @ 15.05.12, 17:32) необходимо зарегистрироваться для просмотра ссылки
Спасибо, что откликнулись.
Вот скрины.




Что за чепуха. Уже по другому загрузил картинки. Чего не показывает?



 ! 

Нифига не по другому. Вставляйте картинки, как вставлена картинка выше.
 
olmar
Ну что ни кто не поможет?
mister-x
Если тзДокДляВыбора.КоличествоСтрок() > 0 Тогда
        тзДокДляВыбора.Сортировать("Контрагент,ТТ,ДокНомер,ПримПоТоргТочка");
        спПараметры    = СоздатьОбъект("СписокЗначений");
        спПараметры.Установить("Контекст",Контекст);
        спПараметры.Установить("тзДляВыбора",тзДокДляВыбора);
        ОткрытьФормуМодально("Обработка.ВыборОтгрузки", спПараметры);
    КонецЕсли;
у формі обробки ВыборОтгрузки має бути аналіз цього списку спПараметры як параметрів форми, назад також можна передати параметри (в проц. ПриЗакрытии) і їх опрацювати в цьому док-ті (таке напр., реалізовано в клієнт-банку)
olmar
Цитата(mister-x @ 15.05.12, 22:05) необходимо зарегистрироваться для просмотра ссылки
у формі обробки ВыборОтгрузки має бути аналіз цього списку спПараметры як параметрів форми, назад також можна передати параметри (в проц. ПриЗакрытии) і їх опрацювати в цьому док-ті (таке напр., реалізовано в клієнт-банку)


Спасибо большое. Ваш совет вывел меня в правильном направлении. В форме ВыборОтгрузки есть процедура с условием

Процедура Выполнить();
    Если Конт.Вид() = "МаршрутныйЛист" Тогда
        тз.ВыбратьСтроки();
        Пока тз.ПолучитьСтроку() = 1 Цикл
            Если тз.Флаг = 0 Тогда
                Продолжить;
            КонецЕсли;
            Конт.НоваяСтрока();
            Конт.ДокНомер    = тз.ДокНомер;
            Конт.ДокСсылка    = тз.ДокСсылка;
            Конт.РР            = тз.РР;
            Конт.Контрагент= тз.Контрагент;
            Конт.ТТ            = тз.ТТ;
            Конт.Вес            = тз.Вес;
            Конт.Штук        = тз.Штук;
            Конт.СуммаСНДС    = тз.Сумма;
            Конт.Прим        = тз.Прим;
            Конт.ПримПоТоргТочка = тз.ПримПоТоргТочка;
        КонецЦикла;


Где я добавил Конт.ПримПоТоргТочка = тз.ПримПоТоргТочка; , что и являлось переносом данных из модальной формы ВыборОтгрузки в Маршрутный лист.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.