Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
1

Работа с макетом

07.10.2015, 09:50. Просмотров 648. Ответов 9
Метки нет (Все метки)

Подскажите как можно с макета перейти сразу в Справочник.ЛицевыеСчетаАбонентов
Вот код макета

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
    ТабДок = Новый ТабличныйДокумент;
    Макет=ПолучитьМакет("Макет");
    ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
    Областьмакета.Параметры.НазваниеТемы="Список льготников по" + " " + Регион;
    ТабДок.Вывести(ОбластьМакета);
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(ОбластьМакета);
    
    Запрос = Новый Запрос;
    ТекстЗапроса =
    "ВЫБРАТЬ
    |   ЛицевыеСчетаАбонентовЛьготники.Ссылка,
    |   ЛицевыеСчетаАбонентовЛьготники.Льгота,
    |   ЛицевыеСчетаАбонентов.Регион,
    |   ЛицевыеСчетаАбонентовЛьготники.ФИО.Наименование КАК ИмяЛьготник,
    |   ЛицевыеСчетаАбонентовЛьготники.ФИО.ДатаРождения КАК РожденияЛьготник,
    |   ЛицевыеСчетаАбонентов.Наименование КАК Адрес,
    |   ЛицевыеСчетаАбонентов.Код
    |ИЗ
    |   Справочник.ЛицевыеСчетаАбонентов.Льготники КАК ЛицевыеСчетаАбонентовЛьготники
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЛицевыеСчетаАбонентов КАК ЛицевыеСчетаАбонентов
    |       ПО ЛицевыеСчетаАбонентовЛьготники.Ссылка = ЛицевыеСчетаАбонентов.Ссылка";
    
    Если ЗначениеЗаполнено(Регион) Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |ГДЕ
        |   ЛицевыеСчетаАбонентов.Регион=&Регион";
        Запрос.УстановитьПараметр("Регион",Регион);
    КонецЕсли;  
    Запрос.Текст=ТекстЗапроса;
    Результат = Запрос.Выполнить().Выбрать();
    Номер = 0;
    Пока Результат.Следующий() Цикл
        Номер = Номер + 1;
        Областьмакета=Макет.ПолучитьОбласть("Строка");
        ОбластьМакета.Параметры.Номер = Номер;
        ОбластьМакета.Параметры.ЛС = Результат.Код;
        ОбластьМакета.Параметры.ФИО = Результат.ИмяЛьготник;
        ОбластьМакета.Параметры.Дата = Формат(Результат.РожденияЛьготник,"ДЛФ=Д");
        ОбластьМакета.Параметры.Адрес = Результат.Адрес;
        ОбластьМакета.Параметры.КодЛьгот = Результат.Льгота.Код;
        ТабДок.Вывести(ОбластьМакета);
        Состояние("Количество льготников =" + " " + Номер);
    КонецЦикла;
    ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабДок.АвтоМасштаб=Истина;
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь; 
    ТабДок.ПовторятьПриПечатиСтроки=ТабДок.Область("R4:R5");  
    ТабДок.Показать();
    
КонецПроцедуры
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2015, 09:50
Ответы с готовыми решениями:

1С ЗУП 3.1 Внешняя обработка с макетом как получить адрес сотрудника по прописке из запроса
Добрый день! Помогите пожалуйста. Кто-то уже разобрался в вопросе как в 1С ЗУП...

SOS! Работа с макетом расширения 1920×4945
Здравствуйте! Я пытаюсь верстать сайт по макету ( впервые), и там ширина 1920...

Поместить векторную графику под основным макетом
Добрый День форумчане, есть вопрос , как сделать так,чтоб та векторная графика...

Подскажите сайт для создания сайта с готовым макетом
подскажите сайт для создания сайта с готовым макетом

Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления
Помогите пожалуйста найти летиратуру, в которой бы описывались работа с...

9
Yanush
159 / 156 / 61
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
07.10.2015, 10:04 2
Не очень понятно, что вы имеете ввиду, но все же:
В свойствах каждой ячейки макета есть "Параметр расшифровки". Если заполнить этот параметр ссылкой например на элемент справочника и закрыть ячейку то при нажатии будет открываться форма элемента справочника с нужным вам элементом.
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
07.10.2015, 10:06  [ТС] 3
Yanush, Параметр я нашел с заполнил, что дальше нужно сделать, немного не понятно
0
Yanush
159 / 156 / 61
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
07.10.2015, 10:16 4
Ячейка, в которой стоит параметр должна быть закрыта. Чтобы нельзя было в ней редактировать текст и т.д. Тогда при нажатии (и наведении) на неё появляется ещё и лупа, а при двойном нажатии открывается значение параметра расшифровки.
0
SHIFT_969
Злой самаритянин
178 / 179 / 94
Регистрация: 24.04.2014
Сообщений: 686
Завершенные тесты: 1
07.10.2015, 10:32 5
http://its.1c.ru/db/metod8dev#content:2233:hdoc
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
07.10.2015, 11:04  [ТС] 6
Yanush, покажи на примере кода

Добавлено через 13 минут
SHIFT_969, что то не понятно мне по примеру, вот что получилось

1C
1
2
3
4
5
6
7
8
    Структура = Новый Структура;
    Структура.Вставить("ЛицевойСчет", Результат.ЛицевойСчет);
    Пока Результат.Следующий() Цикл
        Номер = Номер + 1;
        Областьмакета=Макет.ПолучитьОбласть("Строка");
        ОбластьМакета.Параметры.Номер = Номер;
        ОбластьМакета.Параметры.ЛС = Структура;
        //ОбластьМакета.Параметры.ЛС = Результат.ЛицевойСчет;
0
SHIFT_969
Злой самаритянин
178 / 179 / 94
Регистрация: 24.04.2014
Сообщений: 686
Завершенные тесты: 1
07.10.2015, 11:20 7
Ermak27, Я так думаю, что тебе нужно в параметр записать Ссылку на объект, который надо открыть, а в расшифровке

1C
1
2
3
4
5
6
7
8
9
10
Макет = ПолучитьМакет("Макет");
ОбластьЗапись = Макет.ПолучитьОбласть("Запись");
 
Структура = Новый Структура;
 
Структура.Вставить("Номенклатура", Номенклатура);
 
Структура.Вставить("Контрагент", Контрагент.ФИО.Наименование); // ВОТ ТУТ
ОбластьЗапись.Параметры.Расшифровка = Структура;
ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ОбластьЗапись);
Как-то так указать нужную тебе расшифровку.
1
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
07.10.2015, 11:21  [ТС] 8
Я разобрался сам. Спасибо
0
Yanush
159 / 156 / 61
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
07.10.2015, 18:04 9
А я на работу ушел. Думал понятно и так будет. Все равно напишу.

1. В запросе берешь ссылку на элемент справочника
1C
1
... ВЫБРАТЬ ЛицевыеСчетаАбонентов.Ссылка СчетаСсылка ...
2. В макете, в требуемой ячейке указываешь "Параметр расшифровки" СчетаСсылка
3. При обработке результата запроса просто подставляешь в параметры области
1C
1
2
3
4
выводимаяОбласть = макет.ПолучитьОбласть(...)
...
выводимаяОбласть.Параметры.СчетаСсылка = результатЗапроса.СчетаСсылка
// ну или так тоже работает выводимаяОбласть.Параметры.Заполнить(результатЗапроса);
4. Закрываешь табличный документ от редактирования. Все и никакого кода для обработки открытия простой ссылки на элемент справочника не нужно писать.
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
25.07.2016, 11:35  [ТС] 10
Добрый день!
Что то я опять запарился чтобы из макета попасть в справочник. Можете подсказать что не так делаю. В макете добавил колонку Параметр=ЛицевойСчетДБФ и ПараметрРасшифровки = ЛицевойСчетДБФ

Получаю данные с регистра
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Функция ПолучитьТаблицуАбонентов()      
    
    Запрос = Новый Запрос;
    ТекстЗапроса = "ВЫБРАТЬ
                   |    ЗаявкиНаПоставку.ЛицевойСчет.ОтветственныйКвартиросъемщик КАК ФИОАб,
                   |    ЗаявкиНаПоставку.ЛицевойСчет.Регион КАК Регион,
                   |    ЗаявкиНаПоставку.ЛицевойСчет КАК ЛицевойСчетДБФ
                   |ИЗ
                   |    РегистрСведений.ЗаявкиНаПоставку КАК ЗаявкиНаПоставку
                   |ГДЕ
                   |    НЕ ЗаявкиНаПоставку.ЛицевойСчет.ОтветственныйКвартиросъемщик.Наименование = &Ответственный
                   |    И ЗаявкиНаПоставку.ЛицевойСчет.Регион = &Регион";
    //Параметры запроса
    Запрос.УстановитьПараметр("Регион",Регион);
    Запрос.Текст=ТекстЗапроса;
    мПараметрЗначение=Справочники.ФизическиеЛица.ПустаяСсылка();
    Запрос.УстановитьПараметр("Ответственный", мПараметрЗначение);
    Результат = Запрос.Выполнить().Выгрузить();
    
    Возврат Результат;
    
КонецФункции
Сравниваю полученных абонентов с абонентами в ТЗ1
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ТЗАб=ПолучитьТаблицуАбонентов();
    Для каждого стр из ТЗ1 Цикл
        Номер=Номер+1;      
        ФИОАб1=Врег(стр.ФИО);
        ОтборАб = Новый Структура("ФИОАб",Справочники.ФизическиеЛица.НайтиПоНаименованию(ФИОАб1));
        СтрокиАБ = ТЗАб.НайтиСтроки(ОтборАб);
        Если СтрокиАБ.Количество()>0 Тогда
            НайденныйЛС=СтрокиАБ.Получить(0);
            Областьмакета=Макет.ПолучитьОбласть("Строка|ДБФ");
            ОбластьМакета.Параметры.ФИО=стр.ФИО;
            ОбластьМакета.Параметры.КодЛьготы=стр.КодЛьготы;        
            ОбластьМакета.Параметры.ДеньРождения=Формат(стр.ДеньРождения,"ДЛФ=Д");
            ОбластьМакета.Параметры.Адрес=стр.Адрес;
            ОбластьМакета.Параметры.ЛицевойСчетДБФ=НайденныйЛС.ЛицевойСчетДБФ;
        Иначе
            Областьмакета=Макет.ПолучитьОбласть("Строка|ДБФ");
            ОбластьМакета.Параметры.ФИО=стр.ФИО;
            ОбластьМакета.Параметры.КодЛьготы=стр.КодЛьготы;        
            ОбластьМакета.Параметры.ДеньРождения=Формат(стр.ДеньРождения,"ДЛФ=Д");
            ОбластьМакета.Параметры.Адрес=стр.Адрес;
            ОбластьМакета.Параметры.ЛицевойСчетДБФ="Пустой";
        КонецЕсли;
            ТабДок.Вывести(ОбластьМакета);
    КонецЦикла;
Данные все выводит а вот зайти в справочник с колонки ЛицевойСчетДБФ не получается. Защита на колонку стоит. Что не так у меня?
0
25.07.2016, 11:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2016, 11:35

Количество подведенного и отведенного тепла, работа сжатия, работа расширения
Определить количество подведенного и отведенного тепла, работу сжатия, работу...

Работа с Меню. Сохранение, печать, создать новый. Работа с рисованием
В общем сабж. Делается программа, которая должная Сохранять, печатать и...

Работа формы в фоне, вне фокуса (работа с раскладкой клавиатуры)
Как заставить это работать в фоне? Даный код работает пока форма в фокусе,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru