arefaste/1C_Forums huggingface dataset:
Добрый день, не ругайтесь:) Не могу найти ответ на свой вопрос
Платформа 8.2

Есть документ, на форму я добавил "Поле ввода", значение берется из перечислений..
В модуле объекта по нажатию на кнопку "Рассчитать" ведется много расчетов...
Как мне в модуле объекта, получить значение моего поля? В зависимости от этого значения меняется расчет...
---
связать надо, в поле на форме (второй скрин) "Путь к данным" - надо выбрать тот реквизит, что создали на первом скрине.
А в модуле объекта, если вы выбрали значение поля на форме и записали документ (т.е. данные попали в таблицы базы данных), можно писать просто имя созданного реквизита.
Например проверка на значение поля "Содержимое":

```1c
    Если НЕ Содержимое = Перечисление.Жидкости.Пиво Тогда
    Отказ = Истина;
    КонецЕсли;
```
---
При нажатии на кнопку "Рассчитать" вы выполняете обработку нажатия - процедуру в форме. В этой форме вы вызываете процедуры модуля объекта. Передавайте значение вашего поля ввода в качестве параметра при вызове процедуры модуля объекта.
---
Если вы добавили реквизит документа, и записали документ, то можно обратиться через ЭтотОбъект.ВашеПоляВвода или просто имя реквизита "ВашеПоляВвода".
Если добавили реквизит формы, то передавать как параметр из модуля формы в модуль объекта. Или поместить во временное хранилище - это на крайний случай.
Какой реквизит "Поле ввода" добавили? формы или объекта?
---
Если вы добавили реквизит документа, и записали документ, то можно обратиться через ЭтотОбъект.ВашеПоляВвода.
Если добавили реквизит формы, то передавать как параметр из модуля формы в модуль объекта. Или поместить во временное хранилище - это на крайний случай.
Какой реквизит "Поле ввода" добавили? формы или объекта?

Я новичок в 1С, не ругайте...)
Я добавил на форму "поле ввода" и привязал его к перечислению...
Теперь хочу в модуле объекта где ведется расчет добавить условие, которое зависит от выбранного значения...не могу понять как...
---
По очереди тогда, вы добавили "поле ввода" в какие реквизиты?
Как на скрине 1 или 2?
---
И на форму и в реквизиты...я так понимаю их нужно как-то связать ?
---
связать надо, в поле на форме (второй скрин) "Путь к данным" - надо выбрать тот реквизит, что создали на первом скрине.
А в модуле объекта, если вы выбрали значение поля на форме и записали документ (т.е. данные попали в таблицы базы данных), можно писать просто имя созданного реквизита.
Например проверка на значение поля "Содержимое":

```1c
    Если НЕ Содержимое = Перечисление.Жидкости.Пиво Тогда
    Отказ = Истина;
    КонецЕсли;
```
Народ всем доброго вечера, может кто подскажет что дельного, смысл в чем с экселя загружаю таблицу 1 колонка это водительское удостоверение это строковое поле оно в программе забито где-то с пробелом, где-то без (примерно 22УТ 561444 или 22 ут 561444), при получение с экселя я пробелы могу убрать без проблем СтрЗаменить , теперь вот думая как мне получить ссылку на объект , если запросом то регистр не важен, а вот пробелы важно, если найтипореквезиту то в правах у 2-х людей может отличаться 1 цифра и все то есть нужно полное соответствие и что делать как быть?) не хочется городить огород, может кто подскажет изящное решение какое нибудь, база если что на обычных формах.
---
Вариант 1: получить запросом все номера из базы и сравнивать в цикле.
Вариант 2: получить ссылку запросом через ПОДОБНО "%2%2%У%Т%5%6%1%4%4%4%":

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Справочник1 ГДЕ Реквизит1 ПОДОБНО &СтрокаПоиска");
    НомерИзЭкселя = СтрЗаменить(НомерИзЭкселя, " ", ");
    СтрокаПоиска = "
    Для Сч = 1 По СтрДлина(НомерИзЭкселя ) Цикл
    СтрокаПоиска = СтрокаПоиска + "%" + Сред(НомерИзЭкселя, Сч, 1);
    КонецЦикла;
    СтрокаПоиска = СтрокаПоиска + "%";
    Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска);
```
---
Вариант 1: получить запросом все номера из базы и сравнивать в цикле.
Вариант 2: получить ссылку запросом через ПОДОБНО "%2%2%У%Т%5%6%1%4%4%4%":

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Справочник1 ГДЕ Реквизит1 ПОДОБНО &СтрокаПоиска");
    НомерИзЭкселя = СтрЗаменить(НомерИзЭкселя, " ", ");
    СтрокаПоиска = "
    Для Сч = 1 По СтрДлина(НомерИзЭкселя ) Цикл
    СтрокаПоиска = СтрокаПоиска + "%" + Сред(НомерИзЭкселя, Сч, 1);
    КонецЦикла;
    СтрокаПоиска = СтрокаПоиска + "%";
    Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска);
```
---
Спасибо очень помогло и красиво :)
---
Если это не разовая обработка, то лучше бы приводить номера к единому шаблону сразу при записи в справочник.
```1c
    Процедура СправочникСписокПередУдалением(Элемент, Отказ)
    Если Вопрос("Удалить файл '"+Элемент.ТекущаяСтрока.ПутьКФайлу+"' с диска?", РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет, "Внимание!", КодВозвратаДиалога.Нет) = КодВозвратаДиалога.Да Тогда
    УдалитьФайлы(Элемент.ТекущаяСтрока.ПутьКФайлу);
    КонецЕсли;
    КонецПроцедуры
```

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

```1c
    ЗаписьДвоичныеДанные = Новый ЗаписьJSON;
    ЗаписьДвоичныеДанные.ОткрытьФайл(ПутьКФайлуJSON);

    ДанныеJSON = Новый Структура();
    //Тут формирую структуру с данными для JSON-файла

    ЗаписатьJSON(ЗаписьДвоичныеДанные, ДанныеJSON);

    ЗаписьДвоичныеДанные.Закрыть();

    НовыйДокумент.ДвоичныеДанныеДокумента = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлуJSON));

    НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);

    УдалитьФайлы(ПутьКФайлуJSON);
```

Файл формируется, записывается и все хорошо.

При открытии на сервере пытаюсь считать JSON:

```1c
    ДанныеЭтогоОбъекта = ТекущийОбъект.ДвоичныеДанныеДокумента.Получить();

    ИмяВременногоФайлаJSON = КаталогВременныхФайлов()+Строка(Новый УникальныйИдентификатор())+Объект.Номер+".json";

    ДанныеЭтогоОбъекта.Записать(ИмяВременногоФайлаJSON);

    ЧтениеJSON = Новый ЧтениеJSON;

    ЧтениеJSON.ОткрытьФайл(ПутьКФайлуJSON);

    Пока ЧтениеJSON.Прочитать() Цикл
    //Выполнить операцию
    КонецЦикла;
```

Но при чтении в цикле получаю ошибку:

Ошибка при вызове метода контекста (Прочитать)
 Пока ЧтениеJSON.Прочитать() Цикл
по причине:
Непредвиденный символ при чтении JSON

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

Что я не так делаю, кто может помочь, объяснить?
---
а вы вот эту статью читать? ht tp://v8.1c.ru/o7/201410json/
там иным способом "читается" JSON

```1c
    Хрень = ПрочитатьJSON(ЧтениеJSON);
```
---
а вы вот эту статью читать? ht tp://v8.1c.ru/o7/201410json/
там иным способом "читается" JSON

```1c
    Хрень = ПрочитатьJSON(ЧтениеJSON);
```
---
Ошибка в одном из элементов была, при формировании структуры
Добрый день!
Как всем Вам известно в обычных приложениях есть возможность сделать любую общую форму так называемым "рабочим столом". Вот короткое видео :

https://www.youtube.com/watch?v=OvM5SHzszlw

Но вот как обстоят дела в управляемом приложении. Если создать, допустим, пустую базу. В ней добавить пустую подсистему и запустить. То можно увидеть уже созданный "Рабочий Стол" под названием "Главное".
Есть ли возможность редактировать данную область?

Вариант "Конфигуратор->Открыть рабочую область начальной страницы->Добавить нужные Формы" не подходит. Потому что если закрыть начальную страницу и выбрать закладку "Главное" там будет пусто. А хотелось бы разместить именно в этом пустом пространстве свои наработки.

Благодарю за ответы :)
---
ответ от этого не изменится:
в конфигураторе на корневом пункте дерева метаданных "Конфигурация" правой кнопкой: Открыть командный интерфейс основного раздела.
Там и настраивайте что хотите.

"Главное" это основной раздел, а не рабочий стол.
---
Вот аналогичная тема, пока без ответа: https://forum.infostart.ru/forum9/topic191323/#message1972993 .
---
В этой теме я расписал проблему более развернуто и с примерами.
---
ответ от этого не изменится:
в конфигураторе на корневом пункте дерева метаданных "Конфигурация" правой кнопкой: Открыть командный интерфейс основного раздела.
Там и настраивайте что хотите.

"Главное" это основной раздел, а не рабочий стол.
Платформа 8.3.10.2580
База БП 3.0.58.41

Подскажите пож-та,
сложилась такая ситуацию, при проведении документа вышел крестик, какая то надпись и зависание.
После перезагрузки в оборотно-сальновой ведомости показывает начало сальдо 0, а конец 380,50.
Но проводок НЕТ!!!
Подскажите пож-та, где можно удалить этот глюк.
Большое спасибо
---
В вашем случае поможет только тестирование базы с пересчетом итогов (не забудьте снять копию)
---
Помогите, добрые люди!!!
---
В вашем случае поможет только тестирование базы с пересчетом итогов (не забудьте снять копию)
---
Спасибо, попробую
---
Большое спасибо! Помогло)
---
У вас в двух местах на картинке написано Возрождение ВВЦ, конспиратор.
```1c
    Процедура КоманднаяПанель1ДобавитьСкан(Кнопка)

    Если Не ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда
    Сообщить("Для приложения скана нужно записать документ");
    Возврат;
    КонецЕсли;

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

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

Нужно передать ЭтотОбъект.Ссылка в СканыПриходаТоваров.ФормаЭлемента
---
```1c
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Ссылка", ЭтотОбъект.Ссылка);

    ОткрытьФорму("Справочник.СканыПриходаТоваров.Форма.ФормаЭлемента", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);
```
---
открываете ФормуЭлемента из ФормыВыбора, как я написал в (3).
Потом! Прописываете в модуле ФормыЭлемента процедуру ПриСозданиеНаСервере(Отказ, СтандартнаяОбработка):

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    СсылкаНаДокумент = Параметры.Ссылка;

    КонецПроцедуры
```
---
мало инфы... ФормаЭлемента уже открыта или её надо открыть и передать туда параметр?
---
Сейчас открывается форма списка справочника с отбором, из этой формы нужно приоткрытии ФормыЭлемента передавать туда параметр
---
```1c
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Ссылка", ЭтотОбъект.Ссылка);

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

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    СсылкаНаДокумент = Параметры.Ссылка;

    КонецПроцедуры
```
Добрый день.

Такой вопрос:
В свойствах динамического списка на форме объекта есть возможность настроить список. Там, соответственно, написан запрос, в котором есть параметры (скрин прилагаю). Так вот, меня интересует, где эти параметры заполняются???
---
ПриСозданииНаСервере
Список...УстановитьПараметры(); Список.Параметры.УстановитьЗначениеПараметра
---
ПриСозданииНаСервере
Список...УстановитьПараметры(); Список.Параметры.УстановитьЗначениеПараметра
---
Спасибо!) Сейчас посмотрю)
---
Да, все есть) Спасибо еще раз!)
Добрый день!
Управляемая форма, на нем реквизиты формы вида Надпись. В свойствах есть Пользовательская видимость. В списке Видимость по ролям стоят или убраны птички. Имеется еще тип в виде птички в темном квадратике.
Вопрос. Подскажите, пожалуйста. Возможно, ли , чтобы элемент с птичкой в темном квадратике был невидимым .
---
Темный квадратик означает что видимость определяется общей настройкой (Которая сверху)
---
Темный квадратик означает что видимость определяется общей настройкой (Которая сверху)
---
Понял. Спасибо!
Т.е. Темный квадрат принимает ту настройку которая сверху, а птичка игнорирует верхнюю настройку.
Всем удачи!
Спасибо!
Есть конфа БУ2.0.6.1 - Бухгалтерия Украины. Проблема в том, что типовая груп обработка реквизитов не имеет возможности отбора по доп свойствах объектов. Посмотрел аналогичную обработку с ИТС - тоже нету этой возможности. Начал допиливать код - сделал такую возможность, но столкнулся с проблемой, когда нада отобрать по условию Заполнено - НеЗаполнено. ибо если записи в регистре нету - в запрос левым соединением не попадет документ, хотя по факту если ставим условие не заполнено, то нада что б попал док если записи в регистре нету. Какие есть мысли по этому поводу?
---
ааа. Это ж бубльгум!))) ЕстьNULL(Регистр.Значение, Ложь)
---
Какие есть мысли по этому поводу?Выбирать данные не из таблицы регистров, а из таблицы документов
---
Стоп, доп свойства находятся в регистре доп свойств с измерением Объект, Свойство и ресурсом Значение. В таб доков этих данных нету.
---
Еще раз. Левым соединением к регистру вы не получите документы, которые в регистре отстутствуют. Очевидно, что надо брать документы и к ним левым соединением клеить регистр. Не?
---
:))) Вы не поняли суть проблемы. Понятно что беру таблицу доков и к ней левым соединением клею записи с регистра по Объекту. Проблема в том что когда фильтр ставлю НеЗаполнено - много записей не попадает. Теперь на пальцах:
1. Есть док Приложение2КНалоговойНакладной.
2.Док имеет свойство припустим Зарегистрирован..., тип перечисление.ДаНет
3. Когда у дока это свойство Да - есть запись регистра доп свойств со значением Да.
4.Когда док имеет знач НЕТ - может быть запись в регистре со знач Нет, а может отсутсвовать вовсе, но логично что если отсутствует - то априори ясно что это доп свойство НЕТ.
5. Как учитывать момент п.4 в тексте запроса???
---
ааа. Это ж бубльгум!))) ЕстьNULL(Регистр.Значение, Ложь)
---
Это в выб полях прописать или в условиях через ВЫБОР?
---
Да где удобно, в принципе. Если там отбор пользовательский, то лучше сразу поле так определить, конечно, чтобы NULL-евые значения исключить сразу.
---
Спс за идею, в принципе должно решить проблему. Получится, отпишусь.
---
Чето не лепится.

ВЫБРАТЬ

            ДополнительныеСведения.Свойство КАК Свойство,

            ДополнительныеСведения.Значение КАК Значение,

            Приложение2КНалоговойНакладной.Ссылка

ИЗ

            Документ.Приложение2КНалоговойНакладной КАК Приложение2КНалоговойНакладной

                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения

                        ПО Приложение2КНалоговойНакладной.Ссылка = ДополнительныеСведения.Объект

ГДЕ

            Приложение2КНалоговойНакладной.Дата >= &ДатаС

            И Приложение2КНалоговойНакладной.Дата <= &ДатаПо

            И ДополнительныеСведения.Свойство = &Свойство

            И ДополнительныеСведения.Значение = &Значение
---
Где прописать правильно условие, если записи в регистре вовсе нет - что б попадало в отбор, и что б попадали в отбор значения НЕТ, и не попадали значения ДА?
---
Всем спс, через EСТЬNULL в части условий все получилось!
Нужно получить строковую колонку, которая получается сложением двух других строковых.
В качестве разделителей, хотел использовать символ "|". (да - тот, который для перевода строки используется в текстах модуля).

Пишу в запросе -
```1c
    ЧекПродажаТовары.Номенклатура.Наименование + ВЫБОР
    КОГДА ЧекПродажаТовары.КомбинацияАналитик = ЗНАЧЕНИЕ(Справочник.КомбинацииАналитик.ПустаяСсылка)
    ТОГДА "
    ИНАЧЕ "|" + ЧекПродажаТовары.КомбинацияАналитик.Наименование
    КОНЕЦ КАК НоменклатураНаименование,
```

В итоге результирующая колонка получается без разделителя - НаименованиеНоменклатурыНаименованиеАналитики.

Причём в варианте
```1c
    ЧекПродажаТовары.Номенклатура.Наименование + ВЫБОР
    КОГДА ЧекПродажаТовары.КомбинацияАналитик = ЗНАЧЕНИЕ(Справочник.КомбинацииАналитик.ПустаяСсылка)
    ТОГДА "
    ИНАЧЕ &Разделитель + ЧекПродажаТовары.КомбинацияАналитик.Наименование
    КОНЕЦ КАК НоменклатураНаименование,
```

(Параметр "Разделитель" = "|")
Всё получается правильно - НаименованиеНоменклатуры|НаименованиеАналитики.

Вопрос - есть ли способ обойтись без переменной?
---
Всё должно работать. Возможно, если вы тестируете в консоле запросов, она очищает этот символ.
---
а чем точка с запятой не угодила ? Как по мне, так лучше разделителя и не придумать
---
тем, что ";" встречается (прошу не удивляться! меня - точно не удивляет, гляньте на обозначение ноутбуков в инет-магазинах, там тоже он бывает) в названии Номенклатуры, и в Названии Аналитик.
---
| это вообще-то специальный символ... Может, заменить его чем-то?
---
насчёт спецсимвола, я уже сказал ,что знаю это.
про то, что заменить можно - я тоже, догадываюсь.

другое дело, что - результатss у меня получились такие:
1. не годится.
2. не красивый (хоть и с конечным результатом)
---
Ну обычно двойной символ должен рабоатать - "||"
---
как должен, я и спрашиваю.
не работает..
---
Попробуй

```1c
    "+"|" + ЧекПродажаТовары.КомбинацияАналитик.Наименование
```
---
попробовал - без изменений.
---
З = новый запрос("ВЫБРАТЬ ""123""+""|""+""456""");
 Выб = З.Выполнить().Выбрать();
 Выб.Следующий();
 Сообщить(Выб.Поле1);

123|456

чяднт?
---
Спасибо,
Вы всё так делаете, оказывается просто - в разных местах, по-разному.
(в консоли - также пропускает)
---
Всё должно работать. Возможно, если вы тестируете в консоле запросов, она очищает этот символ.
---
Спасибо, да точно так - пробовал из консоли (там же кстати - с параметром всё работало).

из модуля - всё работает, оказывается.

Ещё раз спасибо за то, что сказали про консоль.
```1c
    ВЫБРАТЬ
    ОбъектыОИС.Сотрудник,
    ВЫБОР
    КОГДА ОбъектыОИС.Родитель = Справочники.ОбъектыОИС.НайтиПоНаименованию("Компьютеры и оргтехника")
    ТОГДА ОбъектыОИС.Наименование
    КОНЕЦ КАК Поле1
    ИЗ
    Справочник.ОбъектыОИС КАК ОбъектыОИС
```

Компьютеры и оргтехника - каталог в Справочнике ОбъектыОИС

запрос в консоли отчетов
---
```1c
    ВЫБРАТЬ
    ОбъектыОИС.Сотрудник,
    ВЫБОР
    КОГДА ОбъектыОИС.Родитель.Наименование ="Компьютеры и оргтехника"
    ТОГДА ОбъектыОИС.Наименование
    КОНЕЦ КАК Поле1
    ИЗ
    Справочник.ОбъектыОИС КАК ОбъектыОИС
```
---
Правильно написано. Только должно ещё быть Иначе:

```1c
    ВЫБРАТЬ
    ОбъектыОИС.Сотрудник,
    ВЫБОР
    КОГДА ОбъектыОИС.Родитель = Справочники.ОбъектыОИС.НайтиПоНаименованию("Компьютеры и оргтехника")
    ТОГДА ОбъектыОИС.Наименование
    ИНАЧЕ
    // Значение, если Родитель <> "Компьютеры и оргтехника"
    КОНЕЦ КАК Поле1
    ИЗ
    Справочник.ОбъектыОИС КАК ОбъектыОИС
```
---
(2) В запросах не работает найти по наименованию
---
А по коду?
---
никакое найти не работает
---
Тогда:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    ОбъектыОИС.Сотрудник,
    ВЫБОР
    КОГДА ОбъектыОИС.Родитель = &Родитель
    ТОГДА ОбъектыОИС.Наименование
    ИНАЧЕ
    // Значение, если Родитель <> "Компьютеры и оргтехника"
    КОНЕЦ КАК Поле1
    ИЗ
    Справочник.ОбъектыОИС КАК ОбъектыОИС";

    Запрос.УстановитьПараметр("Родитель", Справочники.ОбъектыОИС.НайтиПоНаименованию("Компьютеры и оргтехника"));
```
---
Забыл, запрос в консоли отчетов, там нет & и УстановитьПараметр
---
```1c
    ВЫБРАТЬ
    ОбъектыОИС.Сотрудник,
    ВЫБОР
    КОГДА ОбъектыОИС.Родитель.Наименование ="Компьютеры и оргтехника"
    ТОГДА ОбъектыОИС.Наименование
    КОНЕЦ КАК Поле1
    ИЗ
    Справочник.ОбъектыОИС КАК ОбъектыОИС
```
Здравствуйте!

Управление торговлей и взаимоотношениями с клиентами (CRM), редакция 1.1
(похожа на УТ 10.3)

Создал внешний отчет (прикрепил). На форме расположил элемент Поле табличного документа. У него нет метода ЦветФона.
В нем вывожу макет.

Нужно раскрасить строки в выводимом результате.

Подскажите, пожалуйста, как это можно сделать?

Заранее спасибо!
---
Вот так правильно:

Макет = ПолучитьМакет("Макет");
...
ТекОбласть = Макет.ПолучитьОбласть("Строки...");

Для Каждого СтрокаВыборки Из ВыборкаЗапроса Цикл
   Если ЗначениеЗаполнено(СтрокаВыборки.Количество) Тогда
       ТекОбласть.ЦветФона = WebЦвета.БледноЗеленый;
   Иначе
       ТекОбласть.ЦветФона = WebЦвета.Белый;
   КонецЕсли;

   ТекОбласть.Вывести();

КонецЦикла;
---
у выводимой секции есть свойство "ТекущаяОбласть" - может попробовать к ней обратиться и задать цвет
---
при выводе области задавай ей ЦветФона
---
Да, как-то так:

Макет = ПолучитьМакет("Макет");
...
ТекущаяОбласть = Макет.ПолучитьОбласть("Строки");
...
Если ... Тогда
     ТекущаяОбласть.ЦветФона = WebЦвета.БледноЗеленый;
Иначе
...
КонецЕсли;

ТекущаяОбласть.Вывести();
---
а как можно только одну ячейку закрасить?
---
Освойте СКД, там и раскраска встроенная, и за 3 запроса в цикле вам никто не выскажет.
---
вот так сделал
Область.Области.Строка.ЦветФона

спасибо за подсказки

Текущая область - закрашивал только 1 ячейку
---
Да, мне надо было назвать переменную не "ТекущаяОбласть" (это зарезервированное наименование), а "ТекОбласть", например. Моя оплошность, пардоньте! :-)
---
Вот так правильно:

Макет = ПолучитьМакет("Макет");
...
ТекОбласть = Макет.ПолучитьОбласть("Строки...");

Для Каждого СтрокаВыборки Из ВыборкаЗапроса Цикл
   Если ЗначениеЗаполнено(СтрокаВыборки.Количество) Тогда
       ТекОбласть.ЦветФона = WebЦвета.БледноЗеленый;
   Иначе
       ТекОбласть.ЦветФона = WebЦвета.Белый;
   КонецЕсли;

   ТекОбласть.Вывести();

КонецЦикла;
---
Область "Строки" - это область строки табличной части (без полей по краям таблицы).
---
Спасибо!