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

Добрый день/вечер. Прошу помочь советом, как решить вопрос (см. "Задача")

Исходные данные:
1. Платформа 8.3.
2. Самописная конфигурация.
3. Есть документ с полем составного типа (Строка или СправочникСсылка)
4. Документ "проводится" в РегистрНакопления. Поле в регистре - также составное (Строка или СправочникСсылка)

Задача:
Добавить в отчет строковое поле, по значению в котором отбирались строки из РегистраНакопления. Причем, как строковые, так и ссылочные

Дополнительные сведения:
Раньше поле в регистре было только строковым. Вопрос с отчетом решался через запрос: РегистрНакопления.СтроковоеПоле ПОДОБНО "%" + &Параметр + "%". Теперь потребовался составной тип данных в регистре.

Заранее благодарю за конструктивные ответы.
Ответ:
Добрый день,

Большое спасибо за ответ. К сожалению, ввиду долгого (в моем понимании) отсутствия ответов на вопрос - пришлось вернуться к "одиночному" типу значения.
Но, в любом случае, еще раз благодарю за ответ.
Вопрос: Обработка выбора. Составной тип данных

Всем привет!
Есть реквизит формы имеет составной тип данных Строка и Документ1.ссылка

в поле ввода
Если выбрал тип строка, можно ввести строку
Если выбрал тип документ1Ссылка, тогда выбрал нужный документ
Вот процедура

Процедура Реквизит1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка);
    Если ВыбранноеЗначение = Тип("ДокументСсылка.Документ1") Тогда
        СтандартнаяОбработка = Ложь;
        ВыбранноеЗначение = ОткрытьФормуМодально("Документ.Документ1.ФормаВыбора",,Элемент); 
    КонецЕсли;
    Если ВыбранноеЗначение = Тип("Строка") Тогда
        СтандартнаяОбработка = Ложь;
        ВыбранноеЗначение = "";
    КонецЕсли;

    КонецПроцедуры

У меня же когда выбираю тип строка, поле ввода позволяет только выбрать документ1
Ответ: ()Так и не поняла, что должно быть при выборе строки, но попробуй в запросе () убрать во второй ветке "СтандартнаяОбработка=Ложь". Может быть тебе это надо.
Вопрос: Присвоить значение для составного типа данных

Всем здравствуйте! Есть справочник "ИгрокиЛотереи" с реквизитом составного типа данных "СпособОплатыЛотерей" (в составе, например: СправочникСсылка.КартаМир, СправочникСсылка.КартаМастерКард и т.д.). Важно! состав типов должен быть определён. Если для решения темы нужно будет выбрать тип значения реквизита "СпособОплатыЛотерей" в "неопределено", то мне это не подойдёт.
Далее я имею открытую форму справочника "КартаМир", где ИгрокЛотереи - это ссылка на элемент справочника "ИгрокиЛотереи".
Нужно программно установить тип значения поля ввода, соответствующее реквизиту "СпособОплатыЛотерей" как "СправочникСсылка.КартаМир" и присвоить данному полю ввода значение ссылки на объект открытой формы типа "СправочникСсылка.КартаМир". В модуле элемента формы справочника "КартаМир" пишу код:

Код:
Элемент=ИгрокЛотереи.ПолучитьФорму("ФормаЭлемента").ЭлементыФормы.Найти("СпособОплатыЛотерей");
    ТипСтр="СправочникСсылка.КартаМир";
    Элемент.ОграничениеТипа=Новый ОписаниеТипов(ТипСтр);
    Значение=Элемент.Значение;
    Элемент.Значение=Элемент.ОграничениеТипа.ПривестиЗначение(Значение);
    Элемент.ВыбиратьТип=Ложь;
    Элемент.Значение=ЭтотОбъект.Ссылка;
Вылезает ошибка:
{Справочник.КартаМир.Форма.ФормаЭлемента.Форма(23)}: Поле объекта не обнаружено (ОграничениеТипа)
Элемент.ОграничениеТипа=Новый ОписаниеТипов(ТипСтр);

Прошу - помогите, пожалуйста, кто чем может.
Ответ:
Спасибо всем большое. Последние три строчки кода помогли! Я просто забыл записать изменённый объект.
Вопрос: Составной тип данных для реквизита

Всем доброй ночи!

Как в документе создать тип данных составной?.. Чтобы я могла выбрать несколько элементов в один реквизит?..
Ответ: Тамика, в окне выбора типа данных вверху поставьте галочку "Составной тип" и выбирайте все нужные типы.
Вопрос: УФ. Составной тип данных

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

У реквизита формы составной тип данных. Надо программно еще добавить два типа. Как это сделать программно?
Ответ:
Менять тип реквизита можно только программно добавленного, правильно?
Вопрос: Программно добавить поле ввода с составным типом по ссылкам на документы

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

    МассивТиповПартий = Новый Массив;
    МассивТиповПартий.Добавить("ДокументСсылка.ПоступлениеТоваровУслуг");
    МассивТиповПартий.Добавить("ДокументСсылка.ОприходованиеТоваров");
            
    //добавление поля ввода для значений реквизитов

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

    ПолеВводаРеквизита.КнопкаОткрытия = Истина;

В результате, когда я нажимаю уже в Предприятии на открыть в поле ввода (лупа имеется ввиду), то мне показывает модальное окошко со строкой, например "Оприходование !!!00000001 от 01.08.2018", а мне надо, чтобы открывался документ
Ответ: Решил тем, что мне составной тип впринипе и не нужен, у какого-то одного поля всегда будет какой-то один документ, поэтому можно написать

    ПолеВводаРеквизита.ТипЗначения = Новый ОписаниеТипов("ДокументСсылка." + Метаданные.НайтиПоТипу(ТипЗнч(ДокументПартии)).Имя);
Вопрос: Отбор по полю составного типа

Добрый день
На управляемой форме есть таблица со списком документов, на которую наложен отбор следующим образом:
Отбор=Платежи.Отбор.Элементы;
Отбор.Очистить();
    
УсловиеОтбора=Отбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеОтбора.ЛевоеЗначение=новый ПолеКомпоновкиДанных("СчетНаАвансВозмещение");
УсловиеОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
УсловиеОтбора.ПравоеЗначение=Объект.Ссылка;
    
УсловиеОтбора=Отбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных"));
УсловиеОтбора.ЛевоеЗначение=новый ПолеКомпоновкиДанных("ПометкаУдаления");
УсловиеОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
УсловиеОтбора.ПравоеЗначение=Ложь;

После открытия формы отбор по ПометкаУдаления установлен, а по СчетНаАвансВозмещение - нет. Подозреваю дело в том, что СчетНаАвансВозмещение имеет составной тип.
Вопрос: как установить отбор по полю составного типа?
Ответ: Составной тип не влияет. Ищи ошибку в другом.
Вопрос: Настройка выбора составного типа

Всем доброго времени суток!
Платформа: 1С:Предприятие 8.3 (8.3.8.1652)
Конфигурация: Управление торговлей, редакция 11.2 (11.2.3.189)

И так есть внешняя обработка, в обработке есть реквизит, составного типа, "СправочникСсылка.Пользователь" и "СправочникСсылкаГруппаПользователей".
Реквизит выкинут на управляемую форму. При первом выборе, сначала выскакивает диалоговое окно со списком справочников. Мы выбираем нужный и потом уже выбираем элемент справочника.
При последующих открытиях, в форме запоминается последний выбор. Но если нажать кнопку выпадающего списка и нажать показать всё ,меня выкидывает не в справочник, а выскакивает окно со списком справочников, для выбора. Как сделать так, что бы я при нажатии кнопки списка сразу проваливался в справочник?
Ответ:
чтоб не выбирать тип 2 раза...


- Делай свой обработчик выбора. в зависимости от типа значения(предыдущего выбора) открывай нужную форму подбора.
Вопрос: Ошибка преобразования данных XDTO составного типа

Народ, не нашёл ответа на такой вопрос.
Есть реквизит составного типа (простые типы + ссылка справочника). В схеме xsd описывается как:
<xs:element name="Значение" nillable="true"/>

При выгрузке значений примитивных типов - всё нормально.
При попытке присвоить ссылку вываливается ошибка
Ошибка отображения типов:
Отображение типа 'СправочникСсылка.ЗначенияСвойствОбъектов' в тип '{'
Есть предложения по решению, кроме как вручную создавать объект XDTO из ссылки?
Ответ: Ап.
Можно ли заставить 1С автоматически преобразовывать ссылку для реквизита составного типа (если Значение примитивного типа, всё работает, если ссылка - валится ошибка):

НовыйОбъектXDTO["Значение"] = Значение;[/1С]


Если ручками преобразовывать Значение к объекту XDTO, всё благополучно отрабатывает:

[1С]ТипXDTOРеквизита = ФабрикаXDTOКорреспондента.Тип(";, "CatalogRef.ЗначенияСвойствОбъектов");                    НовыйОбъектXDTO["Значение"] = ФабрикаXDTOКорреспондента.Создать(ТипXDTOРеквизита, Значение.УникальныйИдентификатор());