Имя: Пароль:
1C
1C 7.7
v7: Получение и передача данных в форму
0 Raven30
 
13.07.11
15:07
Помогите разобраться, только камнями и другими предметами не кидайтесь. 1С изучал давно, 10 лет назад, потом лет 5 вообще этим не занимался.
Из формы накладной в форму новой ТТН.
В накладной подключаю форму и передаю параметр.
Процедура ПечатьТоварнаяНакладная()
   Параметр = СоздатьОбъект("СписокЗначений");
   Параметр.Установить("Устройство",0);
   Параметр.Установить("КоличествоКопий",1);
   Параметр.Установить("Контекст",глВзятьКонтекст(Контекст));
   ОткрытьФорму("Отчет",Параметр,КаталогИБ()+"\tables\ТоварнаяНакладная.ert");
   
КонецПроцедуры//ПечатьТоварнаяНакладная

В открываемой форме получаю контекст

Процедура СчитатьДокумент(Конт)
   //
   Фирма      = Конт.Фирма;  
   
   Организация = "";
   ТекОргНаим  = "";
   ТекОргАдрес = "";
   ТекОргИП    = "";
   
   
   Если ПустоеЗначение(Фирма) = 0 Тогда
       Организация      = Конт.Фирма;
   КонецЕсли;
       
   СобратьДанныеОрганизации(Организация, ТекОргИП, ТекОргНаим, ТекОргАдрес);
   
   Если ТекОргИП = 0 Тогда
       ГрузоотпрЮрЛицо  = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
       ГрузоотпрФизЛицо = "";
   Иначе
       ГрузоотпрФизЛицо = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
       ГрузоотпрЮрЛицо  = "";
   КонецЕсли;
   
   Контрагент = Конт.Клиент;
   
   
   КонтрВид      = "";
   КонтрНаим     = "";
   КонтрАдрес    = "";
   КонтрТелефоны = "";
   КонтрИП       = 2;
       
   СобратьДанныеКонтрагента(Контрагент, КонтрИП, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
   Если КонтрИП = 0 Тогда
       ГрузополЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
       ГрузополФизЛицо = "";
   Иначе
       ГрузополФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
       ГрузополЮрЛицо  = "";
   КонецЕсли;
   
   НаклДата = Конт.ДатаДок;
   НаклНомер = Конт.НомерДок;
   
   Конт.ВыгрузитьТабличнуюЧасть(ТабличнаяЧасть);
   
   ОбщКолво   = ТабличнаяЧасть.Итог("Количество");
   НаимГрузаКолвоМаркировка = СокрЛП(ОбщКолво) + "кор";

КонецПроцедуры // СчитатьДокумент()

В новой ТТН Есть процедуры
СобратьДанныеКонтрагента и ПоказатьДанныеКонтрагента
Насколько я понимаю мы сначало собираем данные,а потом их показываем. Но у меня ничего не показывает, что не так

Процедура СобратьДанныеКонтрагента(ТекКонтрагент, ТекКонтрИП, ТекКонтрНаим, ТекКонтрАдрес, ТекКонтрТелефоны)
   
   ТекКонтрВид        = "";
   ТекКонтрНаим       = "";
   ТекКонтрАдрес      = "";
   ТекКонтрТелефоны   = "";
   ТекКонтрИП         = 2;
   
   //Если (ПустоеЗначение(ТекКонтрагент) = 0)  и (ТекКонтрагент = "Контрагенты") Тогда
   Если (ПустоеЗначение(ТекКонтрагент) = 0)  и (ТекКонтрагент = "Клиенты") Тогда // у нас Контрагенты это спр.Клиенты
       
       
       Если (ПустоеЗначение(ТекКонтрагент.ЮрФизЛицо) = 0)  Тогда
           
       
       
           ТекКонтрВид = ТекКонтрагент.ЮрФизЛицо.Вид();
           
           //Спр СвоиЮрЛица, ЮрЛица, ФизЛица у нас нет, есть Клиенты и Сотрудники
           
           //Если ТекКонтрВид  = "СвоиЮрЛица" Тогда
           Если ТекКонтрВид  = "Клиенты" Тогда
               
               ТекКонтрИП    = ТекКонтрагент.ЮрФизЛицо.ИндивидуальныйПредприниматель;
               ТекКонтрНаим  = ТекКонтрагент.ЮрФизЛицо.ПолнНаименование;
               //ТекКонтрАдрес = глПредставлениеАдреса(ТекКонтрагент.ЮрФизЛицо.ФактАдрес);
               ТекКонтрАдрес = ТекКонтрагент.ЮрФизЛицо.ФактАдрес;
               
               
           //ИначеЕсли ТекКонтрВид = "ЮрЛица" Тогда
           ИначеЕсли ТекКонтрВид = "Клиенты" Тогда
               ТекКонтрИП    = 0;
               ТекКонтрНаим  = ТекКонтрагент.ЮрФизЛицо.ПолнНаименование;
               //ТекКонтрАдрес = глПредставлениеАдреса(ТекКонтрагент.ЮрФизЛицо.ФактАдрес);
               ТекКонтрАдрес = ТекКонтрагент.ЮрФизЛицо.ФактАдрес;
               
           //ИначеЕсли ТекКонтрВид = "ФизЛица" Тогда
           ИначеЕсли ТекКонтрВид = "Сотрудники" Тогда
               ТекКонтрИП       = 1;
               ТекКонтрНаим     = ТекКонтрагент.ЮрФизЛицо.ПолнНаименование;
               //ТекКонтрАдрес    = глПредставлениеАдреса(ТекКонтрагент.ЮрФизЛицо.ФактАдрес);
               ТекКонтрАдрес    = ТекКонтрагент.ЮрФизЛицо.ФактАдрес;
               
               ТекКонтрТелефоны = ТекКонтрагент.ЮрФизЛицо.Телефоны;
               
           КонецЕсли;
           
       КонецЕсли;        
   КонецЕсли;        

КонецПроцедуры //СобратьДанныеКонтрагента()
1 Ёпрст
 
гуру
13.07.11
15:10
(0) В открываемой форме у тебя в коде !нет нигде! получения параметра.
2 Ёпрст
 
гуру
13.07.11
15:11
На вот, ознакомься сперва:
Книга знаний: Параметр и контекст формы

в статье хоть и есть ошибки, но сойдёт.
3 Raven30
 
14.07.11
12:07
что-то я совсем запутался, ничего не выходит.(
так я параметр получу

Процедура ПриОткрытии()
   
     
   
   // Определение закладок формы
   Форма.ИспользоватьЗакладки(1);
   Форма.Закладки.ДобавитьЗначение(1, "Разделы 1-4");
   Форма.Закладки.ДобавитьЗначение(2, "Разделы 5-7");
   Форма.Закладки.ДобавитьЗначение(3, "Разделы 8-9");
   Форма.Закладки.ДобавитьЗначение(4, "Об.сторона. Разделы 10-13");
   Форма.Закладки.ДобавитьЗначение(5, "Об.сторона. Разделы 14-17");    
   Форма.ИспользоватьСлой("Основной, Разделы1_2_3_4, Кнопки", 2);
       
   ЭкзНомер = 1;
   
   Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначения" Тогда
       
       Конт = Форма.Параметр.Получить("Контекст");
       
   КонецЕсли;
   

   СчитатьДокумент(Конт);

КонецПроцедуры // ПриОткрытии()
4 Рэйв
 
14.07.11
12:13
Пар = Форма.Параметр;
5 Рэйв
 
14.07.11
12:13
а..Ну да.Если в списе есть "Контекст", то да
6 Raven30
 
14.07.11
12:19
у меня ругается
Фирма  = конт.Фирма;
{J:\BASES_ANPO\FARMACEFT\TABLES\?????????????????.ERT(495)}: Значение не представляет агрегатный объект (Фирма)
Это в процедуре СчитатьДокумент(Конт)
7 Злопчинский
 
14.07.11
12:19
Конт.ВыгрузитьТабличнуюЧасть(ТабличнаяЧасть);
ОбщКолво = ТабличнаяЧасть.Итог("Количество");
.
неверно. надо идти по ТЗ и собирать количества с учетом Коэффициент
8 Злопчинский
 
14.07.11
12:21
В приоткрытии() - где определение Конт при условии Иначе...? будет болтаться с божеье помощью?
.
перед ошибкой поставь
Сообщить(ТипЗначенияСтр(Конт));
Сообщить(Конт.Вид());
9 Ёпрст
 
гуру
14.07.11
13:47
(6)
Сообщить(ТипЗначенияСТР(Конт));
Сообщить(ТипЗначения(Конт));

что пишет то хоть ?
10 Raven30
 
14.07.11
14:27
(9) 0
11 Ёпрст
 
гуру
14.07.11
14:29
(10) ну и чего ты хочешь тогда ?
Передай контекст формы для начала, потом уже имей у него свои реквизиты
12 Raven30
 
14.07.11
15:35
(11) а выше я разве его не передал
Параметр.Установить("Контекст",глВзятьКонтекст(Контекст));
13 Ёпрст
 
гуру
15.07.11
10:02
(12) передал, вот только потом не получил.
Больше кода.
14 Raven30
 
15.07.11
10:41
Больше кода  в передаче или получении?
15 Ёпрст
 
гуру
15.07.11
12:16
(14) весь код показывай
16 Raven30
 
17.07.11
19:47
Код в накладной

[code]Процедура ПечатьТоварнаяНакладная()
   Параметры = СоздатьОбъект("СписокЗначений");
   Параметры.ДобавитьЗначение(Фирмы,"Фирмы");
       Параметры.ДобавитьЗначение(Клиент,"Клиенты");
   Параметры.Установить("Устройство",0);
   Параметры.Установить("КоличествоКопий",1);
   //Параметры.ДобавитьЗначение(?((Модифицированность()=0)и(ПустоеЗначение(ТекущийДокумент())=0), ТекущийДокумент(), глВзятьКонтекст(Контекст)), "Контекст");
   Параметры.Установить("Контекст",глВзятьКонтекст(Контекст));
   
   ОткрытьФорму("Отчет",Параметры,КаталогИБ()+"\tables\ТоварнаяНакладная.ert");
   
КонецПроцедуры//ПечатьТоварнаяНакладная[/code]


Это код в обработке

[code]//////Перем УчитыватьНДС, СуммаВклНДС, УчитыватьНП, СуммаВклНП, Скидка;
//////
Перем Фирма, Контрагент, ТабличнаяЧасть;
//////      СуммаНП, Сумма, ДатаДок, КоличествоСтрок,
//////      НазваниеДокумента, Валюта, Курс, Кратность;
     
//////Перем ТекущийДокумент, КодОперации;

Перем Номер;

Перем НазваниеДокумента;

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
   
   Если ЗначениеЗакладки = 1 Тогда
       
       Форма.ИспользоватьСлой("Основной, Разделы1_2_3_4, Кнопки", 2);
   
   ИначеЕсли ЗначениеЗакладки = 2 Тогда      
       
       Форма.ИспользоватьСлой("Основной, Разделы5_6_7, Кнопки", 2);
   
   ИначеЕсли ЗначениеЗакладки = 3 Тогда      
       
       Форма.ИспользоватьСлой("Основной, Разделы8_9, Кнопки", 2);
                                                                   
   ИначеЕсли ЗначениеЗакладки = 4 Тогда      
       
       Форма.ИспользоватьСлой("Основной, Разделы10_11_12_13, Кнопки", 2);
   
   ИначеЕсли ЗначениеЗакладки = 5 Тогда      
       
       Форма.ИспользоватьСлой("Основной, Разделы14_15_16_17, Кнопки", 2);
                   
   КонецЕсли;

КонецПроцедуры // ПриВыбореЗакладки()

//******************************************************************************
Процедура ВыбратьНаимГрузаОтгрузочное()
   
   СпНаимГр = СоздатьОбъект("ТаблицаЗначений");
   
   СпНаимГр.НоваяКолонка("Код", , , , , 16);
   СпНаимГр.НоваяКолонка("Наименование", , , , , 255);
   
   ТаблицаПеречень = СоздатьОбъект("Таблица");
   ТаблицаПеречень.ИсходнаяТаблица("ЕТСНГ");  
   ТаблицаПеречень.Вывести();
   
   НомСтрокиТаблицы = 2;
       
   Пока Лев(ТаблицаПеречень.Область(НомСтрокиТаблицы, 1).Текст, 3) <> "###" Цикл
       
       Код          = СокрЛП(ТаблицаПеречень.Область(НомСтрокиТаблицы, 1).Текст);
       Наименование = СокрЛП(ТаблицаПеречень.Область(НомСтрокиТаблицы, 2).Текст);
                   
       СпНаимГр.НоваяСтрока();
       
       СпНаимГр.Код          = Код;
       СпНаимГр.Наименование = Наименование;
                       
       НомСтрокиТаблицы = НомСтрокиТаблицы + 1;                        
       
   КонецЦикла;
   
   НомерСтрокиСписка = 0;
   
   НаимГрузаОтгрузочное_Код = Прав(НаимГрузаОтгрузочное,6);
   
   СпНаимГр.НайтиЗначение(НаимГрузаОтгрузочное_Код, НомерСтрокиСписка, 1);
   
   СпНаимГр.ВыбратьСтроку(НомерСтрокиСписка, "Выбор значения");
   
   Если НомерСтрокиСписка > 0 Тогда
       
       НаимГрузаОтгрузочное = СокрЛП(СпНаимГр.ПолучитьЗначение (НомерСтрокиСписка, "Наименование")) + " " + СокрЛП(СпНаимГр.ПолучитьЗначение (НомерСтрокиСписка, "Код"));
   
   КонецЕсли;
   
КонецПроцедуры //ВыбратьНаимГрузаОтгрузочное()

//******************************************************************************
Функция ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес)
   ТекОргДанные = "";

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

//******************************************************************************
Процедура СобратьДанныеОрганизации(ТекОрганизация, ТекОргИП, ТекОргНаим, ТекОргАдрес)
   
   ТекОргНаим       = "";
   ТекОргАдрес      = "";
   ТекОргИП         = "";

   Если (ПустоеЗначение(ТекОрганизация) = 0) и (ТекОрганизация.Вид() = "СвоиЮрЛица")  Тогда
           
       ТекОргИП    = ТекОрганизация.ИндивидуальныйПредприниматель;
       ТекОргНаим  = ТекОрганизация.ПолнНаименование;
       ТекОргАдрес = глПредставлениеАдреса(ТекОрганизация.ФактАдрес);
       
   КонецЕсли;

КонецПроцедуры //СобратьДанныеКонтрагента()  

//******************************************************************************
Функция ПоказатьДанныеКонтрагента(ТекКонтрНаим, ТекКонтрАдрес, ТекКонтрТелефоны)
   ТекКонтрДанные = "";

   ТекКонтрДанные = СокрЛП(ТекКонтрНаим);
   
   Если ПустоеЗначение(ТекКонтрАдрес) = 0 Тогда
       ТекКонтрДанные = ТекКонтрДанные + ", " + СокрЛП(ТекКонтрАдрес);
   КонецЕсли;    
       
   Если ПустоеЗначение(ТекКонтрТелефоны) = 0 Тогда
       ТекКонтрДанные = ТекКонтрДанные + ", тел." + СокрЛП(ТекКонтрТелефоны);
   КонецЕсли;    
   
   Возврат ТекКонтрДанные;
   
КонецФункции //ПоказатьДанныеФизЛица()    
   
//******************************************************************************
Процедура СобратьДанныеКонтрагента(ТекКонтрагент, ТекКонтрИП, ТекКонтрНаим, ТекКонтрАдрес, ТекКонтрТелефоны)
   
   ТекКонтрВид        = "";
   ТекКонтрНаим       = "";
   ТекКонтрАдрес      = "";
   ТекКонтрТелефоны   = "";
   ТекКонтрИП         = 2;
   
   //Если (ПустоеЗначение(ТекКонтрагент) = 0)  и (ТекКонтрагент.Вид() = "Контрагенты") Тогда
   Если (ПустоеЗначение(ТекКонтрагент) = 0)  и (ТекКонтрагент.Вид() = "Клиенты") Тогда //у нас в место спр Контрагенты, спр Клиенты

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

КонецПроцедуры //СобратьДанныеКонтрагента()  

//******************************************************************************
Функция ПоказатьДанныеФизЛица(ТекФЛФИО, ТекФЛТелефоны)
   
   ТекФЛДанные = "";
   
   ТекФЛДанные   = СокрЛП(ТекФЛФИО);
   
   Если ПустоеЗначение(ТекФЛТелефоны) = 0 Тогда
       ТекФЛДанные = ТекФЛДанные + ", тел." + СокрЛП(ТекФЛТелефоны);
   КонецЕсли;    
   
   Возврат ТекФЛДанные;
   
КонецФункции //ПоказатьДанныеФизЛица()

//******************************************************************************
Процедура СобратьДанныеФизЛица(ТекФизЛицо, ТекФЛФИО, ТекФЛТелефоны)
   
   ТекФЛФИО      = "";
   ТекФЛТелефоны = "";

   //Если (ПустоеЗначение(ТекФизЛицо) = 0) и (ТекФизЛицо = "ФизЛица") Тогда
   Если (ПустоеЗначение(ТекФизЛицо) = 0) и (ТекФизЛицо = "Сотрудники") Тогда
       
           
       ТекФЛФИО      = СокрЛП(ТекФизЛицо.Наименование);
       ТекФЛТелефоны = СокрЛП(ТекФизЛицо.Телефоны);

   КонецЕсли;
   
КонецПроцедуры //СобратьДанныеФизЛица()

//******************************************************************************
//Предопределенная процедура
//ОбработкаВыбораЗначения()
//
//Параметры:
//
//
//Возвращаемое значение:
//
//
//Описание:
//
//
Процедура ОбработкаВыбораЗначения(ВыбЗнач, ИдентЭлемДиалога, ФлагСтандОбр = 0)
   
   Если ИдентЭлемДиалога = "ГрузоотпрФизЛицо" Тогда
       
       ТекОргНаим       = "";
       ТекОргАдрес      = "";
       ТекОргИП         = "";
       
       СобратьДанныеОрганизации(ВыбЗнач, ТекОргИП, ТекОргНаим, ТекОргАдрес);
       
       Если ТекОргИП = 0 Тогда
           Если Вопрос("Выбранная организация является юр.лицом. Заполнить данные о грузоотправителе-юридическом лице?",4, 60) = 7 Тогда
               ГрузоотпрФизЛицо = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
               ГрузоотпрЮрЛицо  = "";
           Иначе
               ГрузоотпрЮрЛицо  = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
               ГрузоотпрФизЛицо = "";
           КонецЕсли;    
       Иначе
           ГрузоотпрФизЛицо = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
           ГрузоотпрЮрЛицо  = "";
       КонецЕсли;
       
   ИначеЕсли ИдентЭлемДиалога = "ГрузоотпрЮрЛицо" Тогда
       
       ТекОргНаим       = "";
       ТекОргАдрес      = "";
       ТекОргИП         = "";
       
       СобратьДанныеОрганизации(ВыбЗнач, ТекОргИП, ТекОргНаим, ТекОргАдрес);
       
       Если ТекОргИП = 1 Тогда
           Если Вопрос("Выбранная организация является ИП. Заполнить данные о грузоотправителе-физическом лице?",4, 60) = 7 Тогда
               ГрузоотпрЮрЛицо  = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
               ГрузоотпрФизЛицо = "";
           Иначе
               ГрузоотпрФизЛицо = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
               ГрузоотпрЮрЛицо  = "";
           КонецЕсли;    
       Иначе
           ГрузоотпрЮрЛицо  = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
           ГрузоотпрФизЛицо = "";
       КонецЕсли;
       
   ИначеЕсли ИдентЭлемДиалога = "ГрузоотпрОтветственный" Тогда
                   
       ТекФЛФИО      = "";
       ТекФЛТелефоны = "";
       
       СобратьДанныеФизЛица(ВыбЗнач, ТекФЛФИО, ТекФЛТелефоны);
       
       ГрузоотпрОтветственный = ПоказатьДанныеФизЛица(ТекФЛФИО, ТекФЛТелефоны);
     
   ИначеЕсли ИдентЭлемДиалога = "ГрузополФизЛицо" Тогда
         
       КонтрВид        = "";
       КонтрНаим       = "";
       КонтрАдрес      = "";
       КонтрТелефоны   = "";
       КонтрИП         = 2;
       
       СобратьДанныеКонтрагента(ВыбЗнач, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
       Если КонтрИП = 0 Тогда
           Если Вопрос("Выбранная организация является юр.лицом. Заполнить данные о грузополучателе-юридическом лице?",4, 60) = 7 Тогда
               ГрузополФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ГрузополЮрЛицо  = "";
           Иначе
               ГрузополЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ГрузополФизЛицо = "";
           КонецЕсли;
       Иначе
           ГрузополФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
           ГрузополЮрЛицо  = "";
       КонецЕсли;
           
   ИначеЕсли ИдентЭлемДиалога = "ГрузополЮрЛицо" Тогда
         
       КонтрВид        = "";
       КонтрНаим       = "";
       КонтрАдрес      = "";
       КонтрТелефоны   = "";
       КонтрИП         = 2;
       
       СобратьДанныеКонтрагента(ВыбЗнач, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
       Если КонтрИП = 1 Тогда
           Если Вопрос("Выбранная организация является физическим.лицом. Заполнить данные о грузополучателе-физическом лице?",4, 60) = 7 Тогда
               ГрузополЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ГрузополФизЛицо = "";
           Иначе
               ГрузополФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ГрузополЮрЛицо  = "";
           КонецЕсли;
       Иначе
           ГрузополЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
           ГрузополФизЛицо = "";
       КонецЕсли;
           
   ИначеЕсли ИдентЭлемДиалога = "ГрузополОтветственный" Тогда
       
       ТекФЛФИО      = "";
       ТекФЛТелефоны = "";
       
       СобратьДанныеФизЛица(ВыбЗнач, ТекФЛФИО, ТекФЛТелефоны);
       
       ГрузополОтветственный = ПоказатьДанныеФизЛица(ТекФЛФИО, ТекФЛТелефоны);
   
   ИначеЕсли ИдентЭлемДиалога = "ПеревозФизЛицо" Тогда
                     
       КонтрВид        = "";
       КонтрНаим       = "";
       КонтрАдрес      = "";
       КонтрТелефоны   = "";
       КонтрИП         = 2;
       
       СобратьДанныеКонтрагента(ВыбЗнач, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
       Если КонтрИП = 0 Тогда
           Если Вопрос("Выбранная организация является юридическом.лицом. Заполнить данные о перевозчике-юридическом лице?",4, 60) = 7 Тогда
               ПеревозФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ПеревозЮрЛицо  = "";
           Иначе
               ПеревозЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ПеревозФизЛицо = "";
           КонецЕсли;
       Иначе
           ПеревозФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
           ПеревозЮрЛицо  = "";
       КонецЕсли;
       
   ИначеЕсли ИдентЭлемДиалога = "ПеревозЮрЛицо" Тогда
                       
       КонтрВид        = "";
       КонтрНаим       = "";
       КонтрАдрес      = "";
       КонтрТелефоны   = "";
       КонтрИП         = 2;
       
       СобратьДанныеКонтрагента(ВыбЗнач, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
       Если КонтрИП = 1 Тогда
           Если Вопрос("Выбранная организация является физическим.лицом. Заполнить данные о перевозчике-физическом лице?",4, 60) = 7 Тогда
               ПеревозЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ПеревозФизЛицо = "";
           Иначе
               ПеревозФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
               ПеревозЮрЛицо  = "";
           КонецЕсли;
       Иначе
           ПеревозЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
           ПеревозФизЛицо = "";
       КонецЕсли;
       
   ИначеЕсли ИдентЭлемДиалога = "ПеревозОтветственный" Тогда
       
       ТекФЛФИО      = "";
       ТекФЛТелефоны = "";
       
       СобратьДанныеФизЛица(ВыбЗнач, ТекФЛФИО, ТекФЛТелефоны);
       
       ПеревозОтветственный = ПоказатьДанныеФизЛица(ТекФЛФИО, ТекФЛТелефоны);
             
   ИначеЕсли ИдентЭлемДиалога = "ПеревозВодитель" Тогда
       
       ТекФЛФИО      = "";
       ТекФЛТелефоны = "";
       
       СобратьДанныеФизЛица(ВыбЗнач, ТекФЛФИО, ТекФЛТелефоны);
       
       ПеревозВодитель = ПоказатьДанныеФизЛица(ТекФЛФИО, ТекФЛТелефоны);
       
   ИначеЕсли ИдентЭлемДиалога = "ПереадресовкаПолучатель" Тогда
                       
       КонтрВид        = "";
       КонтрНаим       = "";
       КонтрАдрес      = "";
       КонтрТелефоны   = "";
       КонтрИП         = 2;
       
       СобратьДанныеКонтрагента(ВыбЗнач, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
       ПереадресовкаПолучатель  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, "");
   
   КонецЕсли;    
   
КонецПроцедуры // ОбработкаВыбораЗначения()    

//******************************************************************************
//Предопределенная процедура
//ПриНачалеВыбораЗначения()
//
//Параметры:
//
//
//Возвращаемое значение:
//
//
//Описание:
//
//
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога)
   
   Если (ИдентЭлемДиалога = "ГрузоотпрФизЛицо")
    или (ИдентЭлемДиалога = "ГрузоотпрЮрЛицо") Тогда
       
       Параметр = 1;
       
       //ОткрытьФорму("Справочник.СвоиЮрЛица", Параметр);
       ОткрытьФорму("Справочник.Клиенты", Параметр);

       
   ИначеЕсли (ИдентЭлемДиалога = "ГрузополФизЛицо")
    или (ИдентЭлемДиалога = "ГрузополЮрЛицо")
    или (ИдентЭлемДиалога = "ПеревозФизЛицо")
    или (ИдентЭлемДиалога = "ПеревозЮрЛицо")
    или (ИдентЭлемДиалога = "ПереадресовкаПолучатель") Тогда
       
       Параметр = "Выбор";
       
       //ОткрытьФорму("Справочник.Контрагенты", Параметр);
       ОткрытьФорму("Справочник.Клиенты", Параметр);

   
   ИначеЕсли (ИдентЭлемДиалога = "ГрузоотпрОтветственный")
    или (ИдентЭлемДиалога = "ГрузополОтветственный")
    или (ИдентЭлемДиалога = "ПеревозОтветственный")
    или (ИдентЭлемДиалога = "ПеревозВодитель") Тогда
   
       //ОткрытьФорму("Справочник.ФизЛица");
       ОткрытьФорму("Справочник.Сотрудники");
       
   
   ИначеЕсли (ИдентЭлемДиалога = "НаимГрузаОтгрузочное") Тогда
       
       ВыбратьНаимГрузаОтгрузочное();
       
   КонецЕсли;
   
   
КонецПроцедуры // ПриНачалеВыбораЗначения()    

//******************************************************************************
// СчитатьДокумент(Конт)
//
// Параметры:
//  Конт - переданный контекст;
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Считывает необходимые для печати реквизиты документа, контекст которого передали через
//  параметр формы, в модульные переменные
//
Процедура СчитатьДокумент(Конт)
   //
   //Сообщить(ТипЗначенияСтр(Конт));
   //Сообщить(ТипЗначения(Конт));

   
   Фирма = Конт.Фирма;
   
   Организация = "";
   ТекОргНаим  = "";
   ТекОргАдрес = "";
   ТекОргИП    = "";
   
   
   Если ПустоеЗначение(Фирма) = 0 Тогда
       Организация      = Конт.Фирма;
   КонецЕсли;
       
   СобратьДанныеОрганизации(Организация, ТекОргИП, ТекОргНаим, ТекОргАдрес);
   
   Если ТекОргИП = 0 Тогда
       ГрузоотпрЮрЛицо  = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
       ГрузоотпрФизЛицо = "";
   Иначе
       ГрузоотпрФизЛицо = ПоказатьДанныеОрганизации(ТекОргНаим, ТекОргАдрес);
       ГрузоотпрЮрЛицо  = "";
   КонецЕсли;
   
   Контрагент = Конт.Клиент;
   
   
   
   КонтрВид      = "";
   КонтрНаим     = "";
   КонтрАдрес    = "";
   КонтрТелефоны = "";
   КонтрИП       = 2;
       
   СобратьДанныеКонтрагента(Контрагент, КонтрНаим, КонтрАдрес, КонтрТелефоны);
           
   Если КонтрИП = 0 Тогда
       ГрузополЮрЛицо  = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
       ГрузополФизЛицо = "";
   Иначе
       ГрузополФизЛицо = ПоказатьДанныеКонтрагента(КонтрНаим, КонтрАдрес, КонтрТелефоны);
       ГрузополЮрЛицо  = "";
   КонецЕсли;
   
   
   НаклДата = Конт.ДатаДок;
   НаклНомер = Конт.НомерДок;
   

   
   Конт.ВыгрузитьТабличнуюЧасть(ТабличнаяЧасть);
   
   ОбщКолво   = ТабличнаяЧасть.Итог("Количество");
   НаимГрузаКолвоМаркировка = СокрЛП(ОбщКолво) + "кор";


КонецПроцедуры // СчитатьДокумент()

//******************************************************************************
Процедура Печать()  

   Таб = СоздатьОбъект("Таблица");

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

КонецПроцедуры //Печать

//******************************************************************************
// ПоКнопкеПечать()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//
Процедура ПоКнопкеПечать()
   
   Печать();
   
КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
   
   //Если ПустоеЗначение(Форма.Параметр) = 1 Тогда
   //    Предупреждение("Данная обработка предназначена для печати товарной накладной
   //                    |и должна быть зарегистрирована в списке внешних печатных форм конфигурации.
   //                    |Запуск обработки без параметра невозможен.",60);
   //    Статусвозврата(0);
   //    Возврат;
   //КонецЕсли;                
   
   // Определение закладок формы
   Форма.ИспользоватьЗакладки(1);
   Форма.Закладки.ДобавитьЗначение(1, "Разделы 1-4");
   Форма.Закладки.ДобавитьЗначение(2, "Разделы 5-7");
   Форма.Закладки.ДобавитьЗначение(3, "Разделы 8-9");
   Форма.Закладки.ДобавитьЗначение(4, "Об.сторона. Разделы 10-13");
   Форма.Закладки.ДобавитьЗначение(5, "Об.сторона. Разделы 14-17");    
   Форма.ИспользоватьСлой("Основной, Разделы1_2_3_4, Кнопки", 2);
       
   ЭкзНомер = 1;
   
   Если ТипЗначенияСтр(Форма.Параметр)="СписокЗначений" Тогда
       
       
       Конт = Форма.Параметр.Получить("Контекст");
       
       

   КонецЕсли;
   

   СчитатьДокумент(Конт);

КонецПроцедуры // ПриОткрытии()[/code]
17 Raven30
 
20.07.11
10:30
Всем спасибо за помощь.
Разобрался.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс