Есть 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 | Выделяйте код! |