Constantus
31.03.17, 9:45
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)
В обрабоке получаю результат и вывожу его в макет.
Первые две строки содержат заголовок отчета (заглавия столбцов)
Как можно зафиксировать эти 2-строки макета при прокрутке вниз?
Пытался:
Макет = ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
ТабДок.ФиксацияСверху = 3;
ТабДок.ФиксацияСлева = 1;
Область = Макет.ПолучитьОбласть("Заголовок");
ТабДок.Вывести(Область);
ну в общем-то все правильно, свойство "ФиксацияСверху" отвечает за вертикальную фиксацию. Может там строк больше до заголовка? попробуйте увеличить число до 10 и посмотрите зафиксируется или нет
Constantus
31.03.17, 10:16
Bernet @ Сегодня, 13:05
необходимо зарегистрироваться для просмотра ссылки
,
Нет, не помогло... Может настройки таблицы мещают:
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
Constantus @ Сегодня, 13:13
необходимо зарегистрироваться для просмотра ссылки
,
Процедура вывода макета расположена в Модуле Объекта
Скиньте что происходит с ТабДок в конце процедуры, куда передается.
По идее эти настройки друг на друга не влияют
Constantus
31.03.17, 10:28
Bernet @ Сегодня, 13:23
необходимо зарегистрироваться для просмотра ссылки
,
Цитата
Скиньте что происходит с ТабДок в конце процедуры, куда передается.
Не совсем понял что и как скинуть...
Constantus @ Сегодня, 11:28 необходимо зарегистрироваться для просмотра ссылки
,
код процедуры, что происходит в самом конце с табличным документом, он сразу на печать выводится или передается в общие модули для вывода на экран?
весь код процедуры если можно
Constantus @ Сегодня, 10:28 необходимо зарегистрироваться для просмотра ссылки
,
Все, что делается с "ТабДок" до применения метода "Показать()".
Constantus
31.03.17, 10:58
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;
непосредственно перед
ТабДок.Показать();
Constantus
31.03.17, 11:22
Petre @ Сегодня, 14:13 необходимо зарегистрироваться для просмотра ссылки
,
Не помогло, доктор...
Сохраните ваш макет в внешнюю обработку и выложите сюда, посмотрим
Constantus
31.03.17, 11:37
Bernet @ Сегодня, 14:31 необходимо зарегистрироваться для просмотра ссылки
,
Как здесь прикрепить файл? Смог сохранить обработку как внешнюю, макет был в обработке...
необходимо зарегистрироваться для просмотра ссылки
Не знаю честно говоря почему для макета это свойство не срабатывает, но если добавить на форму ПолеТабличногоДокумента, вывести туда ваш ТабДок и установить свойство ПолеТабличногоДокумента.ФиксацияСверху = 3 то тогда работает
Constantus
31.03.17, 12:34
Bernet @ Сегодня, 14:56
необходимо зарегистрироваться для просмотра ссылки
,
Как правильно это сделать с учетом уже существующего кода? Что потребуется изменить?
Constantus @ Сегодня, 15:06
необходимо зарегистрироваться для просмотра ссылки
,
В форме обработки создал "ПолеТабличногоДокумента1"
В конце кода указал:
ТабДок.Показать();
Форма = ЭтотОбъект.ПолучитьФорму("Форма");
Форма.ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок);
Форма.Открыть();
Результат вышел в "ПолеТабличногоДокумента1"... Но
1. Так и не сработала фиксация. Как теперь правильно делать фиксацию?
2. Ранее в макете у меня был запрет на редактирование значений результата, теперь можно изменять. Как заблокировать возможность изменения в ПолеТабличногоДокумента?
3. ранее в макете по расшифровке, я мог открыть любой документа: Область.Параметры.НомерПКОСылка = ВыборкаДенег.Ссылка; Как теперь мне прописать ссылки, чтобы они открывали нужный документ?
1. На форму добавьте элемент "ПолеТабличногоДокумента", назовите его "ПолеТабличногоДокумента"
2. В форме когда происходит вызов процедуры "ВашаПроцедура() добавте его параметром
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка) Экспорт
ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
ВашаПроцедура(ЭлементыФормы.ПолеТабличногоДокумента);
КонецПроцедуры
3. В Модуле объекта выводите ТабДок в ПолеТабличного документа в самом конце вместо строки ТабДок.Показать() напишите следующие строки:
ПолеТабличногоДокумента.Вывести(ТабДок);
ПолеТабличногоДокумента.ФиксацияСверху = ТабДок.ФиксацияСверху;
Constantus
31.03.17, 13:00
Bernet @ Сегодня, 15:46
необходимо зарегистрироваться для просмотра ссылки
,
Отлично! Спасибо!
1. Теперь как поступить с блокировкой на изменение значений? В Поле табличной части все данные можно изменить и испортить
2. В результате, у меня в Макете была возможность при двойном клике вызвать соответствующий документ. Т.е. код:
Область.Параметры.НомерПКОСылка = ВыборкаДенег.Ссылка;
открывал мне (в данном случае) нужный ПКО... Как поступить в этом случае? Что сделать?
Constantus @ Сегодня, 11:37 необходимо зарегистрироваться для просмотра ссылки
,
Раскоментировал фиксацию - все работает...
Constantus
31.03.17, 13:20
Благодарю за терпение!
Поставил только просмотр, ссылки заработали!!!
Чёрд! Другой подводный камень всплыл...
Дело в том, что у меня из другой обработке вызывается эта Обработка вот код:
ОбработкаДетРез = Обработки.ЕжедневныйАнализПоЗаказам.Создать();
ФормаДетальногоРезультата = ОбработкаДетРез.ПолучитьФорму("Форма");
ФормаДетальногоРезультата.ДатаНачала = Даты;
ФормаДетальногоРезультата.До2кв = До2кв;
ОбработкаДетРез.ВашаПроцедура();
Соответственно вызов "ВашаПроцедура" требует параметр, УКАЗЫВАЮЩИЙ НА ПолеТабличногоДокумента1
Как из другой Обработке прописать вызов этого параметра?
ОбработкаДетРез.ВашаПроцедура(ХХХХХХХХХХХХХХХХХХХХХХХХ);
Constantus @ Сегодня, 14:20
необходимо зарегистрироваться для просмотра ссылки
,
попробуйте так
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
Constantus
31.03.17, 14:26
Bernet @ Сегодня, 16:59
необходимо зарегистрироваться для просмотра ссылки
,
Именно так и попробовал.
Выполнение кода срабатывает, т.е. в макет выводит данные, а вот результат в ПолеТабличногоДокумента не выводит на экран
Странно
Поставил открыть
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
ФормаДетальногоРезультата.Открыть();
Форма открылась с правильным результатом, но нет настроек по ширине колонок и фиксация сверху на одну позицию сбита...
Constantus @ Сегодня, 15:26
необходимо зарегистрироваться для просмотра ссылки
,
Все эти свойства надо передать в поле ТабличногоДокумента
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ПолеСлева = 5;
ТабДок.ПолеСправа = 5;
т.е.
ПолеТабличногоДокумента.РазмерКолонтитулаСверху = 0;
ПолеТабличногоДокумента.РазмерКолонтитулаСнизу = 0;
ПолеТабличногоДокумента.АвтоМасштаб = Истина;
ПолеТабличногоДокумента.ОтображатьСетку = Ложь;
ПолеТабличногоДокумента.Защита = Ложь;
ПолеТабличногоДокумента.ТолькоПросмотр = Истина;
ПолеТабличногоДокумента.ОтображатьЗаголовки = Истина;
ПолеТабличногоДокумента.ПолеСлева = 5;
ПолеТабличногоДокумента.ПолеСправа = 5;
У меня результат вывелся, параметр передался, фиксация есть
Constantus
31.03.17, 14:49
Bernet @ Сегодня, 17:35
необходимо зарегистрироваться для просмотра ссылки
,
Сделал так
ОбработкаДетРез.ВашаПроцедура(ФормаДетальногоРезультата.ЭлементыФормы.ПолеТабличногоДокумента1);
Процедура ВашаПроцедура(ПТД) Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
...............................
ТабДок.ФиксацияСверху = 4;
ТабДок.ФиксацияСлева = 5;
ПТД.РазмерКолонтитулаСверху = 0;
ПТД.РазмерКолонтитулаСнизу = 0;
ПТД.АвтоМасштаб = Истина;
ПТД.ОтображатьСетку = Ложь;
ПТД.Защита = Ложь;
ПТД.ТолькоПросмотр = Истина;
ПТД.ОтображатьЗаголовки = Истина;
ПТД.ПолеСлева = 5;
ПТД.ПолеСправа = 5;
//ТабДок.Показать();
ПТД.Вывести(ТабДок);
ПТД.ФиксацияСверху = ТабДок.ФиксацияСверху;
Что я опять таки сделал не так, что у меня не выводится результат?
Constantus
01.04.17, 7:24
Благодарю!
Не знаю что было, но просто скопировал Ваши коды в "ВашаПроцедура" и всё заработало. Ничего принципиального не менял...
Странная вещчЪ получилося...
Constantus
01.04.17, 14:02
Constantus @ Сегодня, 10:24 необходимо зарегистрироваться для просмотра ссылки
,
Вся проблема была в
ПолеТабличногоДокумента.Очистить();
У меня ее не было...
Цитата(Bernet @ 31.03.17, 12:56) необходимо зарегистрироваться для просмотра ссылки
Не знаю честно говоря почему для макета это свойство не срабатывает, но если добавить на форму ПолеТабличногоДокумента, вывести туда ваш ТабДок и установить свойство ПолеТабличногоДокумента.ФиксацияСверху = 3 то тогда работает
Свойство не срабатывает потому, что оно предназначено для использования в интерфейсе, т.е. работает только когда документ помещен в ПолеТабличногоДокумента. ТабДок.Показать() это по сути вывод в файл, а не в интерфейс с которым работает родительская форма.
logist @ Вчера, 11:47 необходимо зарегистрироваться для просмотра ссылки
,
Только что проверил, проблема в другом - релизе платформы. В 8.3.8 - не работает, в 8.3.9 - работает.
Цитата(Petre @ 03.04.17, 14:24) необходимо зарегистрироваться для просмотра ссылки
проблема в другом - релизе платформы. В 8.3.8 - не работает, в 8.3.9 - работает.
Так это видимо реализовали в 8.3.9, у меня в 8.3.5/6/7 не работает.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.