arefaste/1C_Forums huggingface dataset:
Добрый день.
Начинаем работать в УТ 11.4. В документе эквайринговая операция(ОперацияПоПлатежнойКарте) обязательным полем является "Номер платежной карты". От заказчика резонный вопрос: Зачем оно надо? Тем более что вводить этот номер предлагают руками. Бредово это выглядит, откровенно говоря. Что сама необходимость хранить номера, что вводить их руками.
Может кто то подсказать зачем эта информация нужна в 1с? Так как собираюсь убрать использование этого реквизита из формы.
---
Понял. Спасибо. Уже выяснил что не все эти данные заполняют. Много кто пишет туда что угодно, лишь бы данные были. Для себя вопрос закрываю.
---
В это поле обычно вносят последние 4 цифры банковской карты клиента для идентификации оплаты в клиент-банке. Опять же, может последовать возврат, карта (последние 4 цифры) должна совпадать. Идентификация проходит по последним 4 цифрам.
---
Понял. Спасибо. Уже выяснил что не все эти данные заполняют. Много кто пишет туда что угодно, лишь бы данные были. Для себя вопрос закрываю.
Есть динамический список с запросом типа

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТранспортнаяНакладная.Ссылка КАК Ссылка,
    КакиеТоСтатусы.Статус КАК Статус
    ИЗ
    Документ.ТранспортнаяНакладная КАК ТранспортнаяНакладная
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КакиеТоСтатусы КАК КакиеТоСтатусы
    ПО КакиеТоСтатусы.ДокументОснование = ТранспортнаяНакладная.Ссылка
```

Нужно чтобы пользователь, у которого нет прав на чтение регистра, к которому происходит ЛЕВОЕ СОЕДИНЕНИЕ, не видел колонку "Статус", тянущуюся из этого регистра.

Режим РАЗРЕШЕННЫЕ не работает - возникает ошибка "Недостаточно прав для работы с таблицей "РегистрСведений.КакиеТоСтатусы" ".

Вопрос - режим РАЗРЕШЕННЫЕ для динамического списка так и должен отрабатывать или я что то упускаю? И если так эта проблема не решается, то есть ли адекватный способ её решить? без редактирования текста запроса в модуле формы
---
Кажется, что здесь просто управлением видимостью не обойтись. СКД динамического списка исключит колонку из запроса, но не исключит связь с регистром. Чтобы и регистр пропал из запроса, нужно связь с ним обернуть в фигурные скобки.
---
Вопрос - режим РАЗРЕШЕННЫЕ для динамического списка так и должен отрабатывать или я что то упускаю?

Да, так и должен работать.

(1) И если так эта проблема не решается, то есть ли адекватный способ её решить? без редактирования текста запроса в модуле формы

При открытии формы управляйте видимостью этого реквизита.
---
ошибка с недостатком прав же всё равно останется
---
Если на таблицу нет прав а в выборке стоит "ВЫБРАТЬ РАЗРЕШЕННЫЕ" то логично, что будет ошибка.

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

```1c
    ВЫБРАТЬ
    ТранспортнаяНакладная.Ссылка КАК Ссылка,
    КакиеТоСтатусы.Статус КАК Статус
    ИЗ
    Документ.ТранспортнаяНакладная КАК ТранспортнаяНакладная
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.КакиеТоСтатусы) КАК КакиеТоСтатусы
    ПО КакиеТоСтатусы.ДокументОснование = ТранспортнаяНакладная.Ссылка
```
При Запуске 1С выходит сообщение "Класс не зарегистрирован", база SQL, сижу по сети. Если 1с запускать на сервере нечего не пишет. Как исправить ошибку что бы больше не выходила.
---
Версии платформ проверьте на сервере и на клиенте. Они должны быть одинаковы.
---
Можно попробовать переустановить 1С на рабочем месте или зарегить comcntr.dll соответсвующую версии на сервере
---
Версии платформ проверьте на сервере и на клиенте. Они должны быть одинаковы.
---
Какой Виндовс на компе ?? если 7-ка или Виста, то нужно отключить Контроль учетных записей в Панель управления - учетные записи - настройки пользователя - опустить бегунок в самый низ.
---
В новом релизе 8.2 нужно обязательно обновить версии клиента и сервера, чтобы были одинаковые
---
Нужно зарегистрировать DLL аналогичной платформы на втором сервере.
Regsvr32 "C:\Program Files\1cv8\8.х.х.хххх\bin\comcntr.dll"
Доброе утро.
1С:Комплексная автоматизация 2 (2.4.7.109)

В форме своего отчета использую в качестве формы настроек типовую форму "ВспомогательнаяФормаНастроекОтчета".
При задании отбора по умолчанию ставится галка "использовать в качестве значения поле". Приходится каждый раз руками ее убирать.

Возможно кто-то сталкивался, как программно убирать эту галку?
---
В общем, разобрался. Чтобы галка автоматически не ставилась и все типы отборов сами правильно подтягивались, надо в СКД на вкладке "Наборы данных" указать типы значения для полей.
---
В общем, разобрался. Чтобы галка автоматически не ставилась и все типы отборов сами правильно подтягивались, надо в СКД на вкладке "Наборы данных" указать типы значения для полей.
как называется и где настраивается область? см картинку
---
Форма - командный интерфейс - панель навигации. Как правило в перейти.

Но сначала нужно в документе сделать подчиненный регистр сведений, накоплений, бухгалтерский.

В этом случае по идее должно заработать
---
Уберите галку "Использовать стандартные команды" в свойствах РС.
---
Форма - командный интерфейс - панель навигации. Как правило в перейти.

Но сначала нужно в документе сделать подчиненный регистр сведений, накоплений, бухгалтерский.

В этом случае по идее должно заработать
---
Спасибо!

Но у меня задача не добавить туда , а убрать.

Добавил в расширении регистр с измерением Номенклатура и у номенклатуры появилась это ненужное меню.
В коммандном интерфейсе все пусто сейчас
---
Уберите галку "Использовать стандартные команды" в свойствах РС.
---
Спасибо, сработало.! Пытался это зло убрать полгода )))
Суть как-бы ясна. Вопрос немного в другом. Вот функция:

```1c
    &НаКлиенте
    Функция ПересчётПоСтрокеТЧ()
    ТабЧасть = Элементы.Работы.ТекущиеДанные;
    ТабЧасть.СуммаПоРаботе = ТабЧасть.НаименованиеРаботы.Стоимость * ТабЧасть.Количество;
    КонецФункции
```

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

сделайте так

```1c
    &НаКлиенте
    Функция ПересчётПоСтрокеТЧ()
    ТабЧасть = Элементы.Работы.ТекущиеДанные;
    ТабЧасть.СуммаПоРаботе = ПолучитьСтоимостьНаСервере(ТабЧасть.НаименованиеРаботы) * ТабЧасть.Количество;
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьСтоимостьНаСервере(Работа)
    Возврат Работа.Стоимость;
    КонецФункции
```
---
В контексте клиента (процедурах с директивой &НаКлиенте) не доступы данные по ссылкам (вложенные поля реквизитов таблицы). Отсюда 2 решения:
1. Либо Вы реализуете серверную функцию, возвращающую стоимость переданной параметром работы, и используете результат функции в расчете суммы.
2. Либо Вы добавляете новую колонку для стоимости, которую заполняете при изменении в строке работы, а также заполняете при открытии и при записи формы, а в расчете суммы уже используете значение новой колонки.
---
на тонком клиенте не доступны реквизиты объектов по ссыле

сделайте так

```1c
    &НаКлиенте
    Функция ПересчётПоСтрокеТЧ()
    ТабЧасть = Элементы.Работы.ТекущиеДанные;
    ТабЧасть.СуммаПоРаботе = ПолучитьСтоимостьНаСервере(ТабЧасть.НаименованиеРаботы) * ТабЧасть.Количество;
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьСтоимостьНаСервере(Работа)
    Возврат Работа.Стоимость;
    КонецФункции
```
---
Сделали мой день! Замурчало!
---
Сообщение было скрыто модератором.
Как в 1с сделать секундомер?Может кто-то сталкивался и реализовал это.
Секундомер нужен для мобильного приложения
---
Вот тебе легкий секундомер дорабатывай, делай с ним что хочешь и как хочешь.

Я так понимаю вы начинающий программист.

Вот пользуйте

Потому расскажете чем изобретение закончилось.
---
Реализация всех ваших пожеланий.

Можно еще сделать сохранение в регистре, но это только если конфигурацию делать
---
Секундомер или миллисекундомер?
---
без разницы.можно секундомер или миллисекундомер. Но в целом миллисекундомер конечно лучше будет)
---
Если секундомер, то элементарно:

1) Поставил на форме реквизит дата1 (дата/время).
2) Поставил на форме реквизит дата2 (дата/время).
3) Поставил кнопку.
4) Поставил надпись на форме.

По нажатию кнопки первый раз заполнил дату дата1.
По нажатию кнопки второй раз заполнил дату дата2 и вывел в надпись на форме разность секунд между дата1 и дата2.
---
а как 1с узнает , что кнопка была нажата во второй раз, а не в первый. Не будет так, что при каждом нажатии на кнопку будет заполняться дата1?
---
ну так сохраните что нажали уже кнопку где-нибкдь
---
ок. можно будет средствами 1с сделать счетчик секундомера?
---
можно попробовать через ОбработчикОжидания, но это лучше погуглите
---
конечно обработчик ожидания,
раз в секунду пусть дергает, а секунду вычисляет от начальной точки до текущего времени.
---
Из обработчика ожидания секундомер так себе, но другого нет пока, к сожалению.
---
а счётчик секундомера можно добавить на форму?
---
спасибо
---
Просто можно менять надпись кнопки при первом нажатии. При втором - надпись будет другой, это значит что второй раз нажали
---
а прописать условие типа, что если надпись 1<> надпись 2 тогда ......?
---
вы изначально знаете надпись на кнопке. Когда первый раз нажимаете - проверяете - надпись совпадает, значит вы запускаете секундомер и меняете надпись на кнопке, если надпись не равна первоначальному значению - значит ее уже нажали
---
хорошо,спасибо
---
У кнопки есть свойство Пометка. При нажатии смотрите - если оно Ложь - значит первое нажатие, присваиваете ему истину. И наоборот.
---
типа плей-пауза
---
Вот тебе легкий секундомер дорабатывай, делай с ним что хочешь и как хочешь.

Я так понимаю вы начинающий программист.

Вот пользуйте

Потому расскажете чем изобретение закончилось.
---
Спасибо. Вам лично ссылку скину,когда сделаю то,что задумал)
---
Я первым вам лайк поставлю, обещаю. Если чем-то помог конечно. Лайки над разработками сейчас дорого стоят. Надеюсь мой ответ был лучшим.
---
помогли. Ваш ответ отмечен как лучший)
---
С регистром

Конфигурация под 8.3.13.1644.

Ошибся, извиняй.
---
Реализация всех ваших пожеланий.

Можно еще сделать сохранение в регистре, но это только если конфигурацию делать
Добрый день.

В справочнике Номенклатура есть реквизит - БазоваяЕдиница. Нужно обеспечить, что бы в случае, если по номенклатуре было движение в регистрах, то базовуюединицу нельзя было бы изменять.

Создал код проверки в модуле объекта справочник ПередЗаписью, в случае если новое значение не совпадает со значением в базе, то отказ от записи.

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

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

В форме подключите обработчик ожидания.
---
Интересно что это за задача такая?

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

1с8.3 УПП. Необходимо создать запрос чтобы вывести информацию о заказе покупателя (документ-Платежное поручение исходящее) в колонку формы списка.

```1c
    МассивЗаказов = Новый Массив;
    Для Каждого Стр Из ОформленияСтрок Цикл
    МассивЗаказов.Добавить(Стр.ДанныеСтроки.Ссылка);
    КонецЦикла;
    // Формируем запрос к остаткам заказов
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Справки_расчеты_роялти.РасшифровкаПлатежа.(
    | Сделка
    | )
    |ИЗ
    | Документ.Справки_расчеты_роялти.РасшифровкаПлатежа КАК Справки_расчеты_роялти
    |ГДЕ
    | Справки_расчеты_роялти.Сделка В(&МассивСсылок)";

    Запрос.УстановитьПараметр("МассивСсылок", МассивЗаказов);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Выборка.Следующий();

    Для Каждого Стр Из ОформленияСтрок Цикл
    Стр.Ячейки.ОстатокПоЗаказу.Значение = Выборка.Сделка;
    КонецЦикла

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

1С ругается - поле не найдено.

--- может кто знает Стр.Ячейки.ОстатокПоЗаказу.Значение = Выборка.Сделка; правильно ли для вывода данных в ячейку с запроса.
--- как правильно составить запрос для табличной части и механизм вывода в колонку

```1c
    ---Для Каждого Стр Из ОформленияСтрок Цикл
    Стр.Ячейки.ОстатокПоЗаказу.Значение = Выборка.Сделка;
    КонецЦикла
```

Этого достаточно или еще нужны какие-то параметры

Программист я начинающий, помогайте кто чем может.
Спасибо.
---
```1c
    Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Если ДанныеСтроки = Неопределено Тогда
    Возврат;
    КонецЕсли;
    Если ДанныеСтроки.Ссылка.РасшифровкаПлатежа .Количество() > 0 Тогда
    ОформлениеСтроки.Ячейки.ОстатокПоЗаказу .Значение = ДанныеСтроки.Ссылка.РасшифровкаПлатежа[0].Сделка ; ///Выбираем 1 строку ТЧ
    Конецесли;

    КонецПроцедуры
```
---
не совсем понятно что вы хотите сделать...

(1) в колонку формы списка
- Вы хотите вывести дополнительную колонку в таблице? Приложите скриншоты
---
Нужно вывести из табличной части РасшифровкаПлатежа информацию о заказе покупателя в строку формы списка документа ПлатежноеПоручениеИсходящее
---
```1c
    Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Если ДанныеСтроки = Неопределено Тогда
    Возврат;
    КонецЕсли;
    Если ДанныеСтроки.Ссылка.РасшифровкаПлатежа .Количество() > 0 Тогда
    ОформлениеСтроки.Ячейки.ОстатокПоЗаказу .Значение = ДанныеСтроки.Ссылка.РасшифровкаПлатежа[0].Сделка ; ///Выбираем 1 строку ТЧ
    Конецесли;

    КонецПроцедуры
```
---
Спасибо Огромное. Все заработало.
При проведении документа сделана доработка - отправка на сайт по API данных.
Если сайт на http, то выполнения запроса по API на стороне сервера не вызывает (проведение ведь на стороне сервера выполняется) проблем, но если у сайта защищенное соединение, то возинкает проблема с ним.

{ОбщийМодуль._ОбменССайтом.Модуль(1301,45)}: Переменная не определена (СпособВыбораСертификатаWindows)
             Новый СертификатКлиентаWindows(<<?>>СпособВыбораСертификатаWindows.Авто),

Вот участкок кода, в котором происходит проблема:

```1c
    Если ЗащищенноеСоединение Тогда
    ЗащСоединение = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
    Новый СертификатыУдостоверяющихЦентровWindows());

    Отправка = Новый HTTPСоединение(АдресСайта , 443, , ,,,ЗащСоединение,);
    Иначе
    Отправка = Новый HTTPСоединение(АдресСайта);
    КонецЕсли;
```

В случае с
Отправка = Новый HTTPСоединение(АдресСайта);
проблем никаких нет. А вот в случае с использованием защищенного соединения проблема в том, что конструкторы с параметрами
```1c
    СертификатКлиентаWindows(), СпособВыбораСертификатаWindows.Авто, Новый СертификатыУдостоверяющихЦентровWindows()
```

доступны для работы только на клиенте.

На клиенте работает без проблем. А вот в проведении документа - нет.
Как можно извернуться, чтобы на стороне сервера работало защищенное соединение???
---
СертификатКлиентаWindows (WindowsClientCertificate)
По умолчанию
Синтаксис:
Новый СертификатКлиентаWindows()
Описание:
Создает объект клиентского сертификата OpenSSL, загружаемого из системного хранилища сертификатов операционной системы MS Windows. Сертификат подбирается автоматически.
---
Оставить просто ЗащСоединение = Новый ЗащищенноеСоединениеOpenSSL;
?
---
у сайта HTTPS, поэтому защищенное, если оставить без защищенного для HTTPS то просто не работает, ошибка при отправке запроса по HTTPсоединению будет.
Просто базу перевели на клиент-сервер, а до этого была файловая. Файлово понятно - все равно была. А в клиент-сервеной такоый "затык" возник.
---
Я не говорю оставить без защищенного, я говорю оставить просто ЗащСоединение = Новый ЗащищенноеСоединениеOpenSSL;
Вместо
ЗащСоединение = Новый ЗащищенноеСоединениеOpenSSL(
                Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
                Новый СертификатыУдостоверяющихЦентровWindows());
---
нет, так тоже работать не будет - в файловой проверялось. Ставится по умолчанию значение Неопределно для сертификатов и не работает.
---
```1c
    ЗащСоединение = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(),
    Новый СертификатыУдостоверяющихЦентровWindows());
```

А если так?
---
СертификатКлиентаWindows (WindowsClientCertificate)
По умолчанию
Синтаксис:
Новый СертификатКлиентаWindows()
Описание:
Создает объект клиентского сертификата OpenSSL, загружаемого из системного хранилища сертификатов операционной системы MS Windows. Сертификат подбирается автоматически.
---
попробую
Как присвоить полю с типом Ссылка тип NULL
---
можно установить только для элемента поля.формы. Для самого реквизита нельзя.

```1c
    БазовоеОписаниеТипов = Элементы.НоменклатураПоле.ДоступныеТипы;
    Элементы.НоменклатураПоле.ДоступныеТипы = Новый ОписаниеТипов(БазовоеОписаниеТипов, "null");
```
---
можно установить только для элемента поля.формы. Для самого реквизита нельзя.

```1c
    БазовоеОписаниеТипов = Элементы.НоменклатураПоле.ДоступныеТипы;
    Элементы.НоменклатураПоле.ДоступныеТипы = Новый ОписаниеТипов(БазовоеОписаниеТипов, "null");
```
---
Мыслю также вроде лучший ответ.
---
"= Неопределено" спасет отца русской демократии?
---
Зачем?
---
Очень нужно
---
Никак.
---
Почему
---
Потому что у поля тип Ссылка. Можно сделать ИмяПоля = "", тогда там будет пустая ссылка. Может, все-таки, пустая ссылка нужна?
---
(8) сталкивался с ситуацией, когда для внешнего источника данных нужна была поддержка null. Неопределено и ПустаяСсылка не работали.
Приведенный код в (7) как раз сбрасывает значение реквизита, если там что-то было выбрано ранее и в удаленную БД уходит значение null.
---
Спасибо
```1c
    ТекстИнструкции =
    "SELECT
    | [C_Date], [C_Char], [C_Nemeric]
    |FROM [dbo].[Table_1]";
    Попытка
    Команда.CommandText = ТекстИнструкции;
    Выборка = Команда.Execute();
    Если Выборка.BOF = Ложь Тогда
    Выборка.MoveFirst();
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("C_Date");
    ТЗ.Колонки.Добавить("C_Char");
    ТЗ.Колонки.Добавить("C_Nemeric");
    ИндексЗаписи = 1;
    Пока Выборка.EOF = Ложь Цикл
    ТЗ.Добавить();
    Для НомерСтолбца = 0 По Выборка.Fields.Count-1 Цикл
    ИмяСтолбца = Выборка.Fields.Item(НомерСтолбца).Name;
    ТЗ.ЗаполнитьЗначения(Выборка.Fields(ИмяСтолбца).Value, ИмяСтолбца);
    КонецЦикла;
    ИндексЗаписи = ИндексЗаписи + 1;
    Выборка.MoveNext();
    КонецЦикла;
    КонецЕсли;
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
```

Условно в таблице 4 записи и каждая добавленная запись перезаписывается значениями следующей...что не так?
---
как минимум в цикле не ТЗ.Добавить(), а

```1c
    стр = ТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(стр,Выборка);
    да и цикл на 8-ке с выборкой обычно выглядит иначе

    Пока Выборка.Следующий() цикл
    стр = ТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(стр,Выборка);

    КонецЦикла;
```
---
```1c
    стр = ТЗ.Добавить();
    Для НомерСтолбца = 0 По Выборка.Fields.Count-1 Цикл
    ИмяСтолбца = Выборка.Fields.Item(НомерСтолбца).Name;
    стр[ИмяСтолбца] = Выборка.Fields(ИмяСтолбца).Value;
    КонецЦикла;
```
---
ТЗ.ЗаполнитьЗначения(Выборка.Fields(ИмяСтолбца).Value, ИмяСтолбца);
Вы целиком ТЗ по каждой колонке заполняете значениями текущего поля выборки после добавления в ТЗ строки - не мудрено видеть тот результат, который вы видите в итоге.
---
это 7-ка что ли?
---
Нет. 8.3
---
как минимум в цикле не ТЗ.Добавить(), а

```1c
    стр = ТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(стр,Выборка);
    да и цикл на 8-ке с выборкой обычно выглядит иначе

    Пока Выборка.Следующий() цикл
    стр = ТЗ.Добавить();
    ЗаполнитьЗначенияСвойств(стр,Выборка);

    КонецЦикла;
```
---
(5) Спасибо!
---
```1c
    стр = ТЗ.Добавить();
    Для НомерСтолбца = 0 По Выборка.Fields.Count-1 Цикл
    ИмяСтолбца = Выборка.Fields.Item(НомерСтолбца).Name;
    стр[ИмяСтолбца] = Выборка.Fields(ИмяСтолбца).Value;
    КонецЦикла;
```
---
Вообще такие вещи в любой конфигурации на каждом шагу.
Как можно сделать сумма без копейки:

```1c
    ОбластьБонус.Параметры.КСписанию = Шапка.КСписанию;
```
---
```1c
    ОбластьБонус.Параметры.КСписанию = формат(Шапка.КСписанию,"ЧДЦ=0");
```
---
```1c
    ОбластьБонус.Параметры.КСписанию = формат(Шапка.КСписанию,"ЧДЦ=0");
```
---
формат(Шапка.КСписанию,"ЧДЦ=0"); Спасибо
---
Если округлить копейки:

```1c
    ОбластьБонус.Параметры.КСписанию = Окр(Шапка.КСписанию,0);
```

Если отбросить копейки:

```1c
    ОбластьБонус.Параметры.КСписанию = Цел(Шапка.КСписанию);
```

Без одной копейки :)

```1c
    ОбластьБонус.Параметры.КСписанию = Шапка.КСписанию - 0.01;
```
---
Я бы этот ответ признак исчерпывающим.