Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)
В обрабоке получаю результат и вывожу его в макет.
Первые две строки содержат заголовок отчета (заглавия столбцов)
Как можно зафиксировать эти 2-строки макета при прокрутке вниз?
Пытался:
Макет = ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
ТабДок.ФиксацияСверху = 3;
ТабДок.ФиксацияСлева = 1;
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
ну в общем-то все правильно, свойство "ФиксацияСверху" отвечает за вертикальную фиксацию. Может там строк больше до заголовка? попробуйте увеличить число до 10 и посмотрите зафиксируется или нет
Bernet @ Сегодня, 13:05
,
Нет, не помогло... Может настройки таблицы мещают:
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
Скиньте что происходит с ТабДок в конце процедуры, куда передается.
По идее эти настройки друг на друга не влияют
Constantus @ Сегодня, 11:28
,
код процедуры, что происходит в самом конце с табличным документом, он сразу на печать выводится или передается в общие модули для вывода на экран?
весь код процедуры если можно
Constantus @ Сегодня, 10:28
,
Все, что делается с "ТабДок" до применения метода "Показать()".
Petre @ Сегодня, 13:49
,
Код большой... привожу цитаты:
ТабДок = Новый ТабличныйДокумент;
//ТабДок.ФиксацияСверху = 10;
Макет = ПолучитьМакет("Макет");
//ТабДок.ФиксацияСлева = 5;
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
Н = 0;
СЗ = 0; СР = 0; СН = 0; СБ = 0; СК = 0; СВ = 0; СП = 0; СД = 0;
СРИ = 0; СНИ = 0; СПИ = 0; СКИ = 0; СВИ = 0; СДИ = 0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.Ссылка КАК Ссылка,
| ЗаказПокупателя.СуммаДокумента КАК СуммаДокумента,
| ЗаказПокупателя.ДоговорКонтрагента.Наименование КАК Договор,
| ЗаказПокупателя.Номер КАК Номер
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
| И ЗаказПокупателя.Проведен = ИСТИНА
|
|УПОРЯДОЧИТЬ ПО
| ЗаказПокупателя.Номер";
Запрос.УстановитьПараметр("Дата", ДатаНачала);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Область = Макет.ПолучитьОбласть("ОбластьПечати");
ТипДоговора = Выборка.Договор;
Область.Параметры.НомерЗаказа = Выборка.Номер;
Область.Параметры.СуммаЗаказа = Выборка.СуммаДокумента;
Область.Параметры.НомерЗаказаСсылка = Выборка.Ссылка;
Область.Параметры.Договор = ТипДоговора;
Область.Параметры.Н = Н + 1;
СЗ = СЗ + Выборка.СуммаДокумента;
//Сообщить(Выборка.Ссылка);
Н = Н + 1;
....................................
Область = Макет.ПолучитьОбласть("Подвал");
Область.Параметры.СуммаЗаказаИ = СЗ;
Область.Параметры.СуммаРеалИ = СРИ;
Область.Параметры.СуммаНалИ = СНИ;
Область.Параметры.СуммаБНалИ = СПИ;
Область.Параметры.СуммаКредитИ = СКИ;
Область.Параметры.СуммаВозвратИ = СВИ;
Область.Параметры.СуммаПКОИ = СДИ;
ТабДок.Вывести(Область);
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
ТабДок.Показать();
Попробуйте раскомментировать и написать эту строку в самом конце, перед функцией "Показать"
//ТабДок.ФиксацияСверху = 10;
Constantus @ Сегодня, 10:58
,
Установите
ТабДок.ФиксацияСверху = 10;
ТабДок.Показать();
Сохраните ваш макет в внешнюю обработку и выложите сюда, посмотрим
Bernet @ Сегодня, 14:31
,
Как здесь прикрепить файл? Смог сохранить обработку как внешнюю, макет был в обработке...
http://pro1c.org.ua/redirect.php?https://cloud.mail.ru/public/HPmJ/Q2biVrt9n
Не знаю честно говоря почему для макета это свойство не срабатывает, но если добавить на форму ПолеТабличногоДокумента, вывести туда ваш ТабДок и установить свойство ПолеТабличногоДокумента.ФиксацияСверху = 3 то тогда работает
Bernet @ Сегодня, 14:56
,
Как правильно это сделать с учетом уже существующего кода? Что потребуется изменить?
Constantus @ Сегодня, 15:06
,
В форме обработки создал "ПолеТабличногоДокумента1"
В конце кода указал:
ТабДок.Показать();
Форма = ЭтотОбъект.ПолучитьФорму("Форма");
Форма.ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок);
Форма.Открыть();
1. На форму добавьте элемент "ПолеТабличногоДокумента", назовите его "ПолеТабличногоДокумента"
2. В форме когда происходит вызов процедуры "ВашаПроцедура() добавте его параметром
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка) Экспорт
ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
ВашаПроцедура(ЭлементыФормы.ПолеТабличногоДокумента);
КонецПроцедуры
ПолеТабличногоДокумента.Вывести(ТабДок);
ПолеТабличногоДокумента.ФиксацияСверху = ТабДок.ФиксацияСверху;
Bernet @ Сегодня, 15:46
,
Отлично! Спасибо!
1. Теперь как поступить с блокировкой на изменение значений? В Поле табличной части все данные можно изменить и испортить
2. В результате, у меня в Макете была возможность при двойном клике вызвать соответствующий документ. Т.е. код:
Область.Параметры.НомерПКОСылка = ВыборкаДенег.Ссылка;
Constantus @ Сегодня, 11:37
,
Раскоментировал фиксацию - все работает...
Благодарю за терпение!
Поставил только просмотр, ссылки заработали!!!
Чёрд! Другой подводный камень всплыл...
Дело в том, что у меня из другой обработке вызывается эта Обработка вот код:
ОбработкаДетРез = Обработки.ЕжедневныйАнализПоЗаказам.Создать();
ФормаДетальногоРезультата = ОбработкаДетРез.ПолучитьФорму("Форма");
ФормаДетальногоРезультата.ДатаНачала = Даты;
ФормаДетальногоРезультата.До2кв = До2кв;
ОбработкаДетРез.ВашаПроцедура();
ОбработкаДетРез.ВашаПроцедура(ХХХХХХХХХХХХХХХХХХХХХХХХ);
Constantus @ Сегодня, 14:20
,
попробуйте так
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
Bernet @ Сегодня, 16:59
,
Именно так и попробовал.
Выполнение кода срабатывает, т.е. в макет выводит данные, а вот результат в ПолеТабличногоДокумента не выводит на экран
Странно
Поставил открыть
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
ФормаДетальногоРезультата.Открыть();
Constantus @ Сегодня, 15:26
,
Все эти свойства надо передать в поле ТабличногоДокумента
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
ПолеТабличногоДокумента.РазмерКолонтитулаСверху = 0;
ПолеТабличногоДокумента.РазмерКолонтитулаСнизу = 0;
ПолеТабличногоДокумента.АвтоМасштаб = Истина;
ПолеТабличногоДокумента.ОтображатьСетку = Ложь;
ПолеТабличногоДокумента.Защита = Ложь;
ПолеТабличногоДокумента.ТолькоПросмотр = Истина;
ПолеТабличногоДокумента.ОтображатьЗаголовки = Истина;
ПолеТабличногоДокумента.ПолеСлева = 5;
ПолеТабличногоДокумента.ПолеСправа = 5;
Bernet @ Сегодня, 17:35
,
Сделал так
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
Процедура ВашаПроцедура(ПТД) Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
...............................
ТабДок.ФиксацияСверху = 4;
ТабДок.ФиксацияСлева = 5;
ПТД.РазмерКолонтитулаСверху = 0;
ПТД.РазмерКолонтитулаСнизу = 0;
ПТД.АвтоМасштаб = Истина;
ПТД.ОтображатьСетку = Ложь;
ПТД.Защита = Ложь;
ПТД.ТолькоПросмотр = Истина;
ПТД.ОтображатьЗаголовки = Истина;
ПТД.ПолеСлева = 5;
ПТД.ПолеСправа = 5;
//ТабДок.Показать();
ПТД.Вывести(ТабДок);
ПТД.ФиксацияСверху = ТабДок.ФиксацияСверху;
Благодарю!
Не знаю что было, но просто скопировал Ваши коды в "ВашаПроцедура" и всё заработало. Ничего принципиального не менял...
Странная вещчЪ получилося...
Constantus @ Сегодня, 10:24
,
Вся проблема была в
ПолеТабличногоДокумента.Очистить();
У меня ее не было...
logist @ Вчера, 11:47
,
Только что проверил, проблема в другом - релизе платформы. В 8.3.8 - не работает, в 8.3.9 - работает.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua