Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Управляемая Форма в кнопке задвоены печатные формы.

В общей кнопке печать в управляемой форме есть задвоеные макеты. Одна строка генерируется наличием команды в форме. Помогите, пожалуйста, разобраться, как появилась вторая.
У автора спросить не могу, и сама найти не могу (
Заранее благодарна!
Ответ: () Картина складывается тогда, когда потрогаешь всё это ручками, решая реальные задачи.

Могу посоветовать разве что мануал по БСП.

И это: без фотокарточки здесь ничего не взлетит :)
Вопрос: управляемые формы в УПП 1.3

Добрый день! В конфигураторе создаю обработку с управляемой формой (переключаю флаг на управляемую). В режиме предприятия не открывается никак. Кто сталкивался ? как открыть созданную управляемую форму?
Ответ: +() Классика жанра:

<<К сожалению, это невозможно. Свойство "Использовать управляемые формы в обычном приложении" не влияет на внешние обработки и отчёты. В обычном приложении можно открывать только обычные формы таких объектов, а в управляемом только управляемые. Это ограничение платформы.>>
Вопрос: Работа с управляемой формой

Реализовал на обычной форме таблицу с кнопками, 2 из которых добавляют и удаляют колонку, а другие 2 кнопки делают тоже самое для строки. Теперь стоит задача сделать тоже самое, но на управляемых формах. С управляемыми формами не сталкивался, но попробовал написать код. При нажатии на кнопку добавляется колонка, но при повторном нажатии выскакивает ошибка, что имя не уникально. Как можно исправить эту проблему? И еще прошу помочь с удалением колонки, добавлением и удалением строки.
Собственно сам код:
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаКлиенте
Процедура КолонкаДобавить(Команда)
    СерверныйВызовДобавленияКолонки();
КонецПроцедуры
 
&НаСервере
Процедура СерверныйВызовДобавленияКолонки() 
    Таб = Новый ТаблицаЗначений;
    Таб.Колонки.Добавить("_",," ");
    МассивРеквизитов = Новый Массив;
    Для Каждого Кол Из Таб.Колонки Цикл 
        МассивРеквизитов.Добавить(Новый РеквизитФормы(Кол.Имя,Новый ОписаниеТипов("Число"),"Таблица1",Кол.Заголовок));
    КонецЦикла;                   
    ИзменитьРеквизиты(МассивРеквизитов);
    Для Каждого Кол Из Таб.Колонки Цикл
        Если Элементы.Найти(Кол.Имя) = Неопределено Тогда 
            Эл = Элементы.Добавить(Кол.Имя,Тип("ПолеФормы"),Элементы.Таблица1);
            Эл.ПутьКДанным = "Таблица1."+Кол.Имя;
        КонецЕсли;  
    КонецЦикла; 
    ЗначениеВРеквизитФормы(Таб,"Таблица1"); 
КонецПроцедуры
Ответ:
Сообщение от Dethmontt
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаСервере
Процедура СерверныйВызовДобавленияКолонки() 
    Таб = Новый ТаблицаЗначений;
    Таб.Колонки.Добавить("_",," ");
    Мас = Новый массив;
    Для Каждого Кол Из Таб.Колонки Цикл 
        Мас.Добавить("Таблица1."+Кол.Имя));
    КонецЦикла;            
  МассивРеквизитов = Новый Массив;
    Для Каждого Кол Из Таб.Колонки Цикл 
        МассивРеквизитов.Добавить(Новый РеквизитФормы(Кол.Имя,Новый ОписаниеТипов("Число"),"Таблица1",Кол.Заголовок));
    КонецЦикла;                   
    ИзменитьРеквизиты(МассивРеквизитов, Мас);
Попробовал так, но выходит ошибка: "Недопустимый пут к реквизиту Колонка._".
Вопрос: Вывод дерева значений на управляемую форму

{Форма.Форма.Форма()}: Ошибка при вызове метода контекста (Добавить)
        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ЭлементДерево);
по причине: Недопустимое значение параметров

ВыборкаПериод = ВыполнениеЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
    // Создание Реквизита формы типа ДанныеФормыДерево

    МассивДобавляемыхРеквизитов = Новый Массив;
    МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево", 
        Новый ОписаниеТипов("ДеревоЗначений")));
    Для Каждого Колонка Из ВыборкаПериод.Колонки Цикл
        МассивДобавляемыхРеквизитов.Добавить(
           Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево"));
    КонецЦикла;
    ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

    // Преобразование объекта прикладного типа ДеревоЗначений 

    // в реквизит управляемой формы (данные формы)

    ЗначениеВРеквизитФормы(ВыборкаПериод, "Дерево");

    // Создание элемента формы типа ТаблицаФормы для отображения дерева

    ЭлементДерево = Элементы.Добавить("Дерево", Тип("ТаблицаФормы"));
    ЭлементДерево.ПутьКДанным = "Дерево";
    ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево;

    Для Каждого Колонка Из ВыборкаПериод.Колонки Цикл
        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ЭлементДерево);
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя;
    КонецЦикла;
Ответ: этот кусок кода рабочий, колонки дерева значений с типом данных Дата, Число выводятся на форму
не выводятся колонки с ссылочным типом данных. переделал их в тип Строка через .Наименование в запросе
все-равно ошибку выдает.
в чем может быть дело?
Вопрос: Записать() в управляемой форме

Ситуация следующая:

У меня ЗУП 3.0. Есть документ "Изменение штатного расписания". В организации штатные единицы могут вводиться временно. Для этого по кнопке из исходного документа по выбранным позициям создаётся документ на исключение позиций. Эту ссылку мне надо сохранить. Для этого я создал реквизит с типом "Изменение штатного расписания".
После того, как программно записал документ, ссылку пишу в этот реквизит. Вызываю метод записать из управляемой формы с параметрами.. . А он берет и режим записи ставит ПРОВЕДЕНИЕ. ессно исходный документ у меня проведенный! но мне нужно записать 1 реквизит и НЕ перепроводить исходный документ. Как будто не видел моего параметра. Код ниже. Вопрос что не так сделал?

        ДокументРасформирования.Записать(РежимЗаписиДокумента.Запись);
        
        Объект.итр_ДокументРасформирования = ДокументРасформирования.Ссылка;
        
        ПараметрыЗаписи = Новый Структура();
        
        ПараметрыЗаписи.Вставить("РежимЗаписи",РежимЗаписиДокумента.Запись);
        
        ЭтаФорма.Записать(ПараметрыЗаписи);
Ответ: собственно нашел как сделать... так и быть поделюсь.

надо программной получить объект для редактирования несмотря на то что форма открыта, отредактировать и записать привычным способом, а потом просто форму перечитать.
Вопрос: Управляемые формы, а также доп. реквизиты справочника

Здравствуйте!
Я наконец-то начал работать с управляемыми формами, а также доп. реквизитами справочника, которые были введены в режиме предприятие.
1С:Предприятие 8.3 (8.3.8.2054), 1С:Комплексная автоматизация 2 (2.2.3.196).
К сожалению, столкнулся с проблемой и не смог нагуглить её решение.
Суть такова - есть внешняя обработка, в ней пользователь выбирает номенклатуру, после чего другие поля этой обработки должны автоматически заполниться доп. реквизитами этой номенклатуры. Споткнулся в самом начале - пытаюсь запросом получить эти доп. реквизиты.

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
&НаКлиенте
Процедура НоменклатураПриИзменении(Элемент)
    
    
    ДопРеквизиты = ЗапросДопРеквизитов(Объект.Номенклатура);
    
КонецПроцедуры
 
 
&НаСервере
Функция ЗапросДопРеквизитов(Номенклатура)
    
    ЗапросДопРеквизитов = Новый Запрос();
    ЗапросДопРеквизитов.Текст = "ВЫБРАТЬ
                                |   НоменклатураДополнительныеРеквизиты.Ссылка,
                                |   НоменклатураДополнительныеРеквизиты.Свойство,
                                |   НоменклатураДополнительныеРеквизиты.Значение,
                                |   НоменклатураДополнительныеРеквизиты.ТекстоваяСтрока
                                |ИЗ
                                |   Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
                                |ГДЕ
                                |   НоменклатураДополнительныеРеквизиты.Ссылка = &Номенклатура";
                                
    ЗапросДопРеквизитов.УстановитьПараметр("Номенклатура",Объект.Номенклатура); 
    
    РезультатЗапросДопРеквизитов = ЗапросДопРеквизитов.Выполнить().Выгрузить();
 
       Возврат РезультатЗапросДопРеквизитов;
 
 
конецфункции

Выдает

"{ВнешняяОбработка.ПечатьЭтикеток.Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (ЗапросДопРеквизитов)
ДопРеквизиты = ЗапросДопРеквизитов(Объект.Номенклатура);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'"



Пожалуйста, помогите!

Добавлено через 9 минут
В 28 строке "Возврат РезультатЗапросДопРеквизитов;" возвращается таблица значений. Пробую на клиенте обозначить переменную "ДопРеквизиты" как "Новый ТаблицаЗначений" - программа ругается, что не знает, что такое "ТаблицаЗначений". Пробую менять контекст с "НаКлиенте" на "НаСервере" - тогда уже не ругается, но и отладчик перестает работать.
Ответ: Спасибо за ответ!

Разместите на форме табличную часть аналогичной структуры
Но зачем пользователю эта табличная часть? Только лишнее нагромождение формы обработки.

Добавлено через 6 минут
Попробую просто создать таб. часть обработки (без вынесения её на форму) и в неё загрузить результат.

Так и получилось! Спасибо!
Вопрос: Кнопка "ПЕЧАТЬ", управляемые формы

Добрый день, на управляемых формах есть кнопка печать, кнопка находится в командной панели документа, при нажатии на эту кнопку появляется список доступных печатных форм, подскажите где может формироваться этот список? На всякий случай, конфигурация Медицина. Больничная аптека, редакция 1.1 (1.1.8.1) , может кто сталкивался
Ответ: Добился такого результата, что на удаленном компьютере, на сервере(и в файловом и в клиент-серверном варианте), у пользователя с ограниченными правами, при нажатии кнопки печать выходит не весь список доступных печатных форм(выводятся только типовые). Скопировал базу к себе на компьютер развернул в файловом варианте, проверил, все печатные формы, типовые и не типовые у пользователя есть. С чем это может быть связано?
Вопрос: Структура элементов на управляемой форме. Как найти нужный элемент без перебора элементов?

Нужно найти табличное поле на управляемой форме. Делаю это перебором всех элементов формы. Может быть есть какой-то иной способ найти нужный элемент управляемой формы?
Пример поиска перебором:
//*****

ФлНашлиТабличнуюЧасть = Ложь;
        Для Каждого Эл  Из _ЭтаФорма.Элементы Цикл
            Если ТипЗнч(Эл) <>  Тип("ТаблицаФормы")  Тогда
                Продолжить;
            КонецЕсли;    
            Если Эл.ПутьКДанным = "Объект." + _ИмяТабличнойЧасти Тогда
                ФлНашлиТабличнуюЧасть = Истина;
                Прервать;
            КонецЕсли;    
        КонецЦикла;

//*****
Ответ: () Я так понял, что автору нужен первый попавшийся элемент формы, который ссылается на нужный реквизит.
Вопрос: Работа с ТаблицейЗначений в управляемой форме

День добрый. ТаблицаЗначений меня не перестаёт удивлять. Вот собственно вопрос: создаю внешнюю обработку(управляемая форма). Создаю реквизит "ТЗ" с типом "ТаблицаЗначений". И перетаскиваю его на форму. Далее в модуле формы, пишу "ТЗ."и после точки в списке выпадающем списке не вижу свойство "Колонки". Далее, создаю программно :
1C
1
ТЗ = Новый ТаблицаЗначений;
и пишу "ТЗ."и в выпадающем списке есть свойство "Колонки". Вопрос-почему????????
Ответ:
Сообщение от Briolin
А 1с надо сделать что бы прям в конфигураторе было написано что у реквизита на форме тип данных ДанныеФормыКоллекция!
Тогда будет не понятно в какой прикладной объект это можно перевести
Вопрос: [РЕШЕНО] Проверка установки флажка (тип "булево") на управляемой форме

Уважаемые эксперты, прошу помощи!
Управляемая форма. В зависимости от установки флажка "ТребуетсяУказатьКонкретныеДаты" становятся видимыми/невидимыми соответствующие реквизиты. Всё работает.
Вопрос в том, что при снятии этого флажка в уже записанном документе надо очистить эти реквизиты (которые становятся невидимыми), если они были заполнены.
Написал так:
Код:
&НаКлиенте
Процедура ТребуетсяУказатьКонкретныеДатыПриИзменении(Элемент)
    Если НЕ Элементы.ТребуетсяУказатьКонкретныеДаты Тогда
        Элементы.СрокГарантииНач = '00010101000000';
        Элементы.СрокГарантииКон = '00010101000000';
        Элементы.СрокДействияЛицензии = '00010101000000';
    КонецЕсли;
    УстановитьВидимостьДатГарантийногоСрока();
КонецПроцедуры
ругается на "преобразование в булево"

Если так:
Код:
Если НЕ ЗначениеЗаполнено(Элементы.ТребуетсяУказатьКонкретныеДаты) Тогда 
ругается на мутабельное значение.

Как же надо проверить, что флажок снят?
Спасибо.
Ответ:
Действительно. Спасибо!