arefaste/1C_Forums huggingface dataset:
Добрый день
Конфигурация розница 2.3.8 , платформа 8.3.17.1549

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

Как сделать, чтобы уровень характеристики был привязан к одной строке номенклатуры ,а не на каждую хар-ку новая строка ?
---
Зачем детальные записи? Что будет если убрать детальные записи и картинку в группировке "номенклатуре,артикул" выводить?
---
пишет не может быть использовано в группировке
---
Все понял нужно просто разделить по папкам, теперь на одной строчке

Как сделать, чтобы уровень характеристики был привязан к одной строке номенклатуры ,а не на каждую хар-ку новая строка ?
---
если делать как на скрине то работает , но если добавить картинку та же ошибка с группировкой
Приветствую коллеги....

Подскажите, каким образом загрузить в табличную часть определенные колонки из excel ? Например 2-ю и 24-ю колонку ? Чета у меня скиллухи не хватает )))
---
Примерно так

```1c
    Для НомерСтроки = 1 По КолСтроки Цикл

    НоваяСтрока = ТЗЕкселяСШапкой.Добавить();

    Попытка

    НоваяСтрока.Колонка0 = НомерСтроки;

    Для ш = 1 по КолКолонок Цикл

    /////// только нужные колонки
    Если ш = 2 ИЛИ ш = 10 Тогда
    ИмяКолонки = "Колонка" + ш;
    Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
    Иначе
    ....
    КонецЕсли;
    ///////
    КонецЦикла;

    Исключение
    Сообщить("Строка №"+Формат(НомерСтроки,"ЧГ=0")+" не обработана.");
    КонецПопытки;

    КонецЦикла;
```
---
загрузить в ТабДанных определенные колонки В 1С нет такого типа объекта "ТабДанных"
---
Извиняюсь. Поправился )
---
Точно так же, как загружаете и "не определенные". Разницы никакой. Если читаете файл построчно, то там есть возможность указать номер колонки. Никаких проблем.
---
Примерно так

```1c
    Для НомерСтроки = 1 По КолСтроки Цикл

    НоваяСтрока = ТЗЕкселяСШапкой.Добавить();

    Попытка

    НоваяСтрока.Колонка0 = НомерСтроки;

    Для ш = 1 по КолКолонок Цикл

    /////// только нужные колонки
    Если ш = 2 ИЛИ ш = 10 Тогда
    ИмяКолонки = "Колонка" + ш;
    Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
    Иначе
    ....
    КонецЕсли;
    ///////
    КонецЦикла;

    Исключение
    Сообщить("Строка №"+Формат(НомерСтроки,"ЧГ=0")+" не обработана.");
    КонецПопытки;

    КонецЦикла;
```
---
/////// только нужные колонки
Если ш = 2 ИЛИ ш = 10 Тогда
ИмяКолонки = "Колонка" + ш;
Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
Иначе

Во, то что нужно ))) Спасибо большое !
---
И зачем тут цикл по всем колонкам, если вы заранее знаете их конкретные номера?
---
Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
Что за фигня? Что мешает написать
```1c
    НоваяСтрока[ИмяКолонки] = ...
```
---
самый тормозной способ загрузки, читать из ячейки:
---Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");

и еще а почему номера колонок? вообще смотрят на Наименования/Заголовок колонок. Что у вас загрузится если изменится порядок колонок?

используйте встроенные механизмы 1С
1.читайте данные ТабличныйДокумент.Прочитать("ВашФайлЕксел.xls");
2.с пом. ПостроительЗапроса из ТабличныйДокумент получаете ТаблицуЗначений

а уже дальше с ТЗ можно делать все что угодно
---
самый тормозной способ загрузки, читать из ячейки:
---Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");

Это всего лишь пример для понимания человеку задавшему вопрос.......................,
---
Вопрос возникает раз в неделю. Или народ не умеет пользоваться поиском (что вряд ли), или поиск на инфостарте - полное г-но (это, кстати, правда). Поэтому автору я бы в гугл обратиться предложил, ибо ответ, выделенный желтеньким - так себе ответ.
Посоветуйте, пожалуйста, альтернативное решение. Обратила внимание, что выборка нечасто передается в качестве параметров, наверное есть этому причины.

```1c
    Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);

    РезультатЗапроса = Запрос.Выполнить();

    Если НЕ РезультатЗапроса.Пустой() Тогда
    Выборка = РезультатЗапроса.Выбрать();

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

Суть обработки в том, из этого одного большого ПД удаляю записи по сотруднику, и создаю новый ПД для одного сотрудника.
Вариант что по одному сотруднику два регистратора не предусматривается - записи либо в старом, либо в новом ПД. Поэтому определяюсь с регистратором (Выборка.РегистраторНомер = "№xxx"), а затем либо создаю новый ПД + заполняю ТЧ обработки, либо сразу заполняю ТЧ обработки (новый ПД уже создан).
---
Цикл явно лишний, почему вы игнорируете предыдущие комментарии? Не вдаваясь в логику вашего решения, код можно оформить так:
```1c
    Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Если Выборка.РегистраторНомер = "№xxx" Тогда
    Выборка.Сбросить();
    СоздатьНовыйПеренос(Выборка);
    Иначе
    Выборка.Сбросить();
    ЗаполнитьТаблицуКадровыеДанные(Выборка);
    КонецЕсли;
    КонецЕсли;
```
---
(3) (5) Спасибо всем большое!
---
1. ПЕРВЫЕ 1
2. Если Выборка.Следующий() Тогда
Есть отчет построенный на СКД. В нём есть поле "Регистратор", которое отображается в виде :
Расходная накладная 950 от 01.04.2021

Заказчик хочет видеть представление регистратора в таком виде:
Расходная накладная 950 от 01.04.2021 ФОП Иванов

Сначала пошел в предопределенную процедуру ОбработкаПолученияПредставления(), но оказалось что при формировании отчёта она не вызывается вообще.
Попробовал через ВыражениеПредставления в СКД - но тогда не работает double click в документ регистратор. Плюс записать в него выражение типа: Регистратор. Номер + " " + Регистратор.Дата + Регистратор.Контрагент - не даёт - выдаёт ошибку выражения.

Вопрос: где формируется представление регистратора?
---
Разобрался.
Оказывается предопределённая процедура вызывалась, но после неё вызывалась общая для всех видов документов процедура, которая перезаписывала моё изменённое представление на стандартное.
---
Разобрался.
Оказывается предопределённая процедура вызывалась, но после неё вызывалась общая для всех видов документов процедура, которая перезаписывала моё изменённое представление на стандартное.
---
Возможно это поможет https://youtu.be/BY996hZF968
Добрый вечер. Подскажите кто сможет.
Есть реквизит у документа в зависимости от заполненности реквизита табчасти он должен меняться:
Если в табчасти реквизит заполнен во всех строках то должно стоять у реквизита документа "заполнено"
Если реквизит заполнен не во всех строчках то должно стоять "частично заполнено"

```1c
    Для Каждого стр из Объект.МТЦ цикл
    Если ЗначениеЗаполнено(стр.Выбор) тогда
    Объект.СтатусЗаявки = ЧастичноВработе();
    КонецЕсли
    КонецЦикла;
```
---
```1c
    ТЗ=Объект.МТЦ.Выгрузить();
    ТЗ.Свернуть("Выбор", );
    Если ТЗ.Количество()=1 Тогда
    Если ЗначениеЗаполнено(ТЗ[0].Выбор) Тогда
    Объект.СтатусЗаявки = Заполнено();
    Иначе
    Объект.СтатусЗаявки = Незаполнено();
    КонецЕсли;
    ИначеЕсли ТЗ.Количество()>1 Тогда
    Объект.СтатусЗаявки = ЧастичноВработе();
    Иначе
    Объект.СтатусЗаявки = Незаполнено();
    КонецЕсли;
```
---
```1c
    ТЗ=Объект.МТЦ.Выгрузить();
    ТЗ.Свернуть("Выбор", );
    Если ТЗ.Количество()=1 Тогда
    Если ЗначениеЗаполнено(ТЗ[0].Выбор) Тогда
    Объект.СтатусЗаявки = Заполнено();
    Иначе
    Объект.СтатусЗаявки = Незаполнено();
    КонецЕсли;
    ИначеЕсли ТЗ.Количество()>1 Тогда
    Объект.СтатусЗаявки = ЧастичноВработе();
    Иначе
    Объект.СтатусЗаявки = Незаполнено();
    КонецЕсли;
```
---
ТЗ=Объект.МТЦ.Выгрузить();
ТЗ.Свернуть("Выбор", );
Если ТЗ.Количество()=1 Тогда
    Если ЗначениеЗаполнено(ТЗ[0].Выбор) Тогда
          Объект.СтатусЗаявки = Заполнено();
    Иначе
          Объект.СтатусЗаявки = Незаполнено();
    КонецЕсли;
ИначеЕсли ТЗ.Количество()>1 Тогда
    Объект.СтатусЗаявки = ЧастичноВработе();
КонецЕсли;

Спасибо
---
```1c
    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Выбор", Истина);
    ВсегоВыбрано = Объект.МТЦ.НайтиСтроки(ПараметрыОтбора).Количество();

    ВсегоСтрок = Объект.МТЦ.Количество();

    Если ВсегоВыбрано = 0 Тогда
    Объект.СтатусЗаявки = НеЗаполнено();
    ИначеЕсли ВсегоВыбрано < ВсегоСтрок Тогда
    Объект.СтатусЗаявки = ЧастичноВработе();
    Иначе
    Объект.СтатусЗаявки = Заполнено();
    КонецЕсли;
```
Есть несколько однотипных выгрузок в виде внешних обработок, которые запускаются по расписанию. Те, что запускаются ежедневно - работают как часа. Но когда выгрузка должна запускаться например раз в неделю в воскресенье, то происходит следующее - в первый раз задание отрабатывает, но в следующее воскресенье уже не запускается. Что может быть? Если изменить расписание на понедельник например, то аналогично - раз сработает и все.
---
каждый день, 1-го числа месяца; с 11:00:00 один раз в день
---
скрин с настройками расписания в студию
---
c 1 января 2021 г. один день, по дням недели [воскресенье]; с 11:00:00 один раз в день

вот текст расписания
---
это не скрин
Слово "Один день" не наводит на мысль что что-то не так ?
---
наводит, пусто значение повторять каждые дней. хорошо как тогда задать раз в месяц без указания повторять каждые дней ибо в месяце разное количество дней
---
каждый день, 1-го числа месяца; с 11:00:00 один раз в день
Конфигурация типовая УНФ.
Не могу найти в конфигураторе отчет "Движение товаров по складам". Есть "Движение товаров" и всё.

Подскажите что это за отчет? Или это только вариант отчета "Движение товаров"?
---
В конфигураторе "Движение товаров по складам" в УНФ - Это вариант отчета "Склад"...
---
В конфигураторе "Движение товаров по складам" в УНФ - Это вариант отчета "Склад"...
---
Спасибо! Это то, что надо.
---
Стоимостная оценка склада ?
---
наверное имеется в виду "Ведомость по товарам на складах в ценах номенклатуры", но это не тот.
Необходимо добавить перечисление на форму в виде списка с флажками, при этом не использую дополнительных списков, работая чисто с перечислениями, можно ли это реализовать не программно?
---
Если не требуется список отображать на форме, можно использовать метод ПоказатьОтметкуЭлементов списка значений или общую форму ВводЗначенийСпискомСФлажками, если конфигурация на БСП.
---
на мой взгляд нет.

только через создание либо табличной части либо отдельной форм (если требуется выбор нескольких)
Обычно перечисление выводят как переключатель. Вы опишите зачем Вам так?
---
Просто ищу способ, чтобы не писать это программно, чтобы можно было брать только перечисление и из него выбирать несколько значений или вообще ничего, типо в виде чекбокса
---
Если не требуется список отображать на форме, можно использовать метод ПоказатьОтметкуЭлементов списка значений или общую форму ВводЗначенийСпискомСФлажками, если конфигурация на БСП.
Здравствуйте форумчане. Столкнулся со странным поведением платформы, ну или чего-то не понимаю. Есть форма, у нее в контекстном меню вызывается команда, в которой есть обработка оповещения

```1c
    ДокументСсылка = Элементы.СписокВариантовРасчета.ТекущаяСтрока;
    ПараметрыОткрытия = Новый Структура("ДокументСсылка", ДокументСсылка);
    ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("КопированиеРасчетаВДругойПроектКлиент", ЭтаФорма);
    Форма = ОткрытьФорму("ОбщаяФорма.СписокДоступныхПроектов", ПараметрыОткрытия, ЭтаФорма,,,,ОписаниеОповещенияОЗакрытии);
```

оповещение вызывает процедуру, которая открывает новую форму документа

```1c
    КопияРасчетаСсылка = КопированиеРасчетаВДругойПроектСервер(СтруктураРезультата);

    ОткрытьЗначение(КопияРасчетаСсылка);
```

Все работает корректно, но есть нюанс, при закрытии клиента, снова срабатывает процедура "КопированиеРасчетаВДругойПроектКлиент", хотя нигде кроме оповещения не происходит ее вызова. Я не понимаю почему это происходит.
---
У вас имя локальной переменной "ОписаниеОповещенияОЗакрытии" совпадает со свойством формы.
---
Форма = ОткрытьФорму("ОбщаяФорма.СписокДоступныхПроектов", ПараметрыОткрытия, ЭтаФорма,,,,ОписаниеОповещенияОЗакрытии); - Прости пожалуйста, это что такое? Давно ОткрытьФорму() возвращает значение?
---
КопированиеРасчетаВДругойПроектСервер - ищи в модуле. Значит есть еще где-то вызов. Твой код мало о чем говорит.
---
У вас имя локальной переменной "ОписаниеОповещенияОЗакрытии" совпадает со свойством формы.
---
Спасибо, вы правы.
---
См. (4)
Добрый день.
Есть функция которая возвращает табличный документ.

```1c
    &НаСервере
    Функция СформироватьТабельНаСервере(ТабДок)
    ....
    код....
    ....
    ТабДок.Вывести(ОбластьПодвал);
    Возврат(ТабДок);
    КонецФункции
```

Параллельно формированию ТабДок, записываются данные в ТЗ_ТабельноеВремя.
Помогите прописать условие, при котором функция будет возвращать не ТД, а ТЗ.
---
Как Вам и писали в (3):

```1c
    .....
    ТабДок.Вывести(ОбластьПодвал);

    Структура = Новый Структура;
    Структура.Вставить("ТабличныйДокумент", ТабДок);
    Структура.Вставить("ТаблицаЗначений", ТЗ_ТабельноеВремя);

    Возврат(Структура);

    КонецФункции
```
---
Формируйте структуру, значения ТД и ТЗ записывайте в элементы структуры. Возвращайте структуру
---
1. А принимающая сторона может принимать ТЗ вместо ТД? ТД обычно принимают УФ, но они не принимают ТЗ.
2. Условие таки не опубликовано, что есть первое препятствие в помощи по его прописыванию.
3. Помочь прописать - это кнопки на клаве за тебя понажимать? Или поправить твои попытки? Так где они?
---
Формируйте структуру, значения ТД и ТЗ записывайте в элементы структуры. Возвращайте структуру
---
&НаСервере
Функция СформироватьТабельНаСервере(ТабДок)
....
код....
....
Возврат ТЗ_ТабельноеВремя;
КонецФункции
---
Как Вам и писали в (3):

```1c
    .....
    ТабДок.Вывести(ОбластьПодвал);

    Структура = Новый Структура;
    Структура.Вставить("ТабличныйДокумент", ТабДок);
    Структура.Вставить("ТаблицаЗначений", ТЗ_ТабельноеВремя);

    Возврат(Структура);

    КонецФункции
```
---
Сейчас по нажатию кнопки формируется ТабДок.
Делаю функцию экспортной, чтобы можно было вызвать ее из другой обработки и там нужна именно ТЗ

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

```1c
    ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
    НЕ РеализацияТоваровУслуг.ПометкаУдаления
    И РеализацияТоваровУслуг.Контрагент = &Контрагент
    И (РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаКонец)
```
---
```1c
    ВЫБОР
    КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    ТОГДА ИСТИНА
    ИНАЧЕ ТаблицаИсточник.Контрагент = &Контрагент
    КОНЕЦ
```
---
Это решение поизящней, чем вариант победителя. ))
Но люди обычно делают через ИЛИ

```1c
    где &Контрагент = РеализацияТоваровУслуг.Контрагент или &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
```
---
```1c
    И &Контрагент В (РеализацияТоваровУслуг.Контрагент, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
```
---
Это решение поизящней, чем вариант победителя. ))
Но люди обычно делают через ИЛИ

```1c
    где &Контрагент = РеализацияТоваровУслуг.Контрагент или &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
```
---
Спасибо=)
---
```1c
    ВЫБОР
    КОГДА &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    ТОГДА ИСТИНА
    ИНАЧЕ ТаблицаИсточник.Контрагент = &Контрагент
    КОНЕЦ
```
---
Спасибо большое)
---
ошибку уже исправил?
---
Какую именно?
---
так ведь решение с ног на голову перевернуто
не?
---
Если запрос пишется во встроенном языке, я бы просто исключил это условие из текста запроса. Если на СКД, то можно добавить секцию с фигурными скобками:
```1c
    ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаКонец
    И НЕ РеализацияТоваровУслуг.ПометкаУдаления
    {ГДЕ
    РеализацияТоваровУслуг.Контрагент = &Контрагент}
```
 И порядок условий лучше сразу выстраивать таким образом, чтобы сначала шли условия, максимально сокращающие выборку.
Здравствуйте.

Задача!

Есть выборка их результата запроса, к формированию выборки и тексту запроса у нас нет доступа.

Можно ли получить как то получить имена (значения можно перебором по индексам) полей ВыборкИзРезультатаЗапроса и в итоге сформировать из них структуру?
---
ВыборкаИзРезультатаЗапроса.Владелец()

Возвращаемое значение:
Тип: РезультатЗапроса.
Описание:
Возвращает результат запроса, из которого получена выборка.

А дальше можно Таб = РезультатЗапроса.Выгрузить() - это таблица значений, у нее уже можно перебрать колонки: Для Каждого Колонка Из Таб.Колонки Цикл.

Есть типовая функция БСП ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений)
---
Если б был РезультатЗапроса, точно можно было бы выгрузить в таблицу и перебрать колонки.
Судя по синтаксис помощнику, у выборки нет коллекции полей, которые можно перебрать.
---
ВыборкаИзРезультатаЗапроса.Владелец()

Возвращаемое значение:
Тип: РезультатЗапроса.
Описание:
Возвращает результат запроса, из которого получена выборка.

А дальше можно Таб = РезультатЗапроса.Выгрузить() - это таблица значений, у нее уже можно перебрать колонки: Для Каждого Колонка Из Таб.Колонки Цикл.

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

```1c
    СтруктураДляПоиска = Новый Структура("НаименованиеНашегоПоля", "Пусто");
    ЗаполнитьЗначенияСвойств(СтруктураДляПоиска, Выборка);
    Если СтруктураДляПоиска.НаименованиеНашегоПоля = "Пусто" Тогда
    Сообщить("Нет такого поля в выборке!");
    КонецЕсли;
```