arefaste/1C_Forums huggingface dataset:
Кароч, есть результат запроса в 2 колонки, допустим, номенклатура и цвет:
Штани | Красные
Штани | Черные
Штани | Зелёные
Юбка | Желтый
Юбка | Красный

Как вывести результат в табличный документ, чтобы все штани объеденились? типа так:

Штани | Красные | Черные | Зелёные
Юбка | Желтый | Красный

Очень далек от темы, если можно, поподробнее или ссылку где есть поподробнее
---
Гугли "Обход результата запроса по группировкам" и методы "Вывести", "Присоединить" у табличного документа
---
Заранее прошу прощения у матёрых прогромистов, если тут что-то не так, но лучшего я не смог придумать
Ответ будущему мне:
Во-первых, Сань, если ты сюда вернулся, значит делаешь в жизни что-то не то.

```1c
    ВыборкаНоменклатуры=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
    Пока ВыборкаНоменклатура.Следующий() Цикл
    Область1 = Макет.ПолучитьОбласть("Строка|СтолбецНоменклатуры");
    Область1.Параметры.Номенклатура=Выборка.Номенклатура;
    ТабДок.Вывести(Область1);

    ВыборкаЦвет=ВыборкаНоменклатура.Выбрать();
    Пока ВыборкаЦвет.Следующий() Цикл
    Область2=Макет.ПолучитьОбласть("Строка|СтолбецЦвета");
    Область2.Параметры.Цвет=ВыборкаЦвет.Цвет;
    ТабДок.Присоединить(Область2);
    КонецЦикла;
    КонецЦикла;

    ТабДок.Показать();
```
---
Гугли "Обход результата запроса по группировкам" и методы "Вывести", "Присоединить" у табличного документа
---
Заранее прошу прощения у матёрых прогромистов, если тут что-то не так, но лучшего я не смог придумать
Ответ будущему мне:
Во-первых, Сань, если ты сюда вернулся, значит делаешь в жизни что-то не то.

```1c
    ВыборкаНоменклатуры=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
    Пока ВыборкаНоменклатура.Следующий() Цикл
    Область1 = Макет.ПолучитьОбласть("Строка|СтолбецНоменклатуры");
    Область1.Параметры.Номенклатура=Выборка.Номенклатура;
    ТабДок.Вывести(Область1);

    ВыборкаЦвет=ВыборкаНоменклатура.Выбрать();
    Пока ВыборкаЦвет.Следующий() Цикл
    Область2=Макет.ПолучитьОбласть("Строка|СтолбецЦвета");
    Область2.Параметры.Цвет=ВыборкаЦвет.Цвет;
    ТабДок.Присоединить(Область2);
    КонецЦикла;
    КонецЦикла;

    ТабДок.Показать();
```
Ребята подскажите пожалуйста,как сделать расчетную процедуру для колонки тч документа!к примеру я заполняю первые две колонки,а в третий автоматически сразу вписывается расчетное число(1колонка-2 колонка= )!возможно ли это!если да подскажите как,или скиньте какой нибудь пример пожалуйста!
---
Примерно так:

```1c
    Процедура ПриИзмененииРеквизитов1И2(Элемент)
    ТД = Элформы.ТекДанные;
    Тд.колонка3 = Тд.колонка1 - Тд.колонка2;
    КонецПроцедуры
```
---
вот так получилось,спасибо!)

```1c
    Процедура ТаблицаТЦКоличествоИсполняемогоПродуктаИКоличествоНаВыходеСУчасткаПриИзменении(Элемент)
    СтрокаТабличнойЧасти = ЭлементыФормы.ТаблицаТЦ.ТекущиеДанные;
    СтрокаТабличнойЧасти.ОсталосьСделать = СтрокаТабличнойЧасти.КоличествоИсполняемогоПродукта - СтрокаТабличнойЧасти.КоличествоНаВыходеСУчастка;
    КонецПроцедуры
```
---
Примерно так:

```1c
    Процедура ПриИзмененииРеквизитов1И2(Элемент)
    ТД = Элформы.ТекДанные;
    Тд.колонка3 = Тд.колонка1 - Тд.колонка2;
    КонецПроцедуры
```
---
Сейчас попробую,спасибо!)
---
вот смотрите у меня получилась вот такая процедура,но ничего не происходит..не подскажете в чем я ошибся?

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

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

Код:

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();
  ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
  КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
  МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.ПолучитьМакет("ФизическиеЛица"), ЭтотОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
  ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
  ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
  ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
  ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ПолеТабличногоДокумента1);
  ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
---
Решено добавление процедуры

Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

 СтандартнаяОбработка = Ложь;

 Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") тогда
  ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Расшифровка];
  Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
   Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
    ОткрытьЗначение(Поле.Значение);
   КонецЦикла;
  КонецЕсли;
 КонецЕсли;

КонецПроцедуры
---
ДанныеРасшифровки остались где-то там.
Чтобы расшифровка работа на клиенте, необходимо переменную расшифровки связать с реквизитом формы используя хранилище.

лень жевать, в типовых масса примеров
---
Решено добавление процедуры

Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

 СтандартнаяОбработка = Ложь;

 Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") тогда
  ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Расшифровка];
  Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
   Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
    ОткрытьЗначение(Поле.Значение);
   КонецЦикла;
  КонецЕсли;
 КонецЕсли;

КонецПроцедуры
Добрый день ребят!у меня в документе есть кнопка(таблиц несколько) и на каждой таблице кнопка,при нажатии которой заполняется следующая таблица,и вкладка перекидывается на заполняемую таблицу!первая кнопка делает все верно,но вторая только лишь перекидывает вкладку,но не заполняет следующую таблицу!подскажите пожалуйста где ошибка!вот процедуры кнопок!

Процедура Кнопка1Нажатие(Элемент) // тут кнопку можно назвать понятно
 Если ТаблицаТЦ.Количество() > 0 Тогда
  Для каждого Стр из ТаблицаТЦ Цикл
   НоваяСтрока = Таблица1Исп.Добавить();
   НоваяСтрока.ИсполняемыйПродукт = Стр.ИсполняемыйПродукт ; // так код будет более понятен.
   НоваяСтрока.КоличествоИсполняемогоПродукта = Стр.КоличествоИсполняемогоПродукта;

  КонецЦикла;
 Иначе
  Предупреждение("Перед окончанием текущего цикла заполните данные в текущей таблице");

 КонецЕсли;
         Этаформа.ТекущийЭлемент = ЭлементыФормы.Таблица1Исп;

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

Процедура Кнопка2Нажатие(Элемент) // тут кнопку можно назвать понятно
 Если Таблица1Исп.Количество() > 0 Тогда
  Для каждого Стр из ТаблицаСборки Цикл
   НоваяСтрока = ТаблицаСборки.Добавить();
   НоваяСтрока.ИсполняемыйПродукт = Стр.ИсполняемыйПродукт ; // так код будет более понятен.
   НоваяСтрока.КоличествоИсполняемогоПродукта = Стр.КоличествоИсполняемогоПродукта;

  КонецЦикла;
 Иначе
  Предупреждение("Перед окончанием текущего цикла заполните данные в текущей таблице");

 КонецЕсли;
         Этаформа.ТекущийЭлемент = ЭлементыФормы.ТаблицаСборки;

КонецПроцедуры
---
а тут нет ошибки? вы обходите таблицу котору и заполняете

```1c
    Для каждого Стр из ТаблицаСборки Цикл
    НоваяСтрока = ТаблицаСборки.Добавить();
```
---
Может проблема в этом?

```1c
    Для каждого Стр из ТаблицаСборки Цикл
    НоваяСтрока = ТаблицаСборки.Добавить();
```
---
оборачивайте пожалуйста код в соответствующие теги CODE, на панели есть кнопка "Вставка кода". Так читать код куда сложнее
---
а тут нет ошибки? вы обходите таблицу котору и заполняете

```1c
    Для каждого Стр из ТаблицаСборки Цикл
    НоваяСтрока = ТаблицаСборки.Добавить();
```
---
(5) Спасибо ребят что то пропустил!!
---
Сам модуль ошибок не выдает!пишет все норм!
---
Может проблема в этом?

```1c
    Для каждого Стр из ТаблицаСборки Цикл
    НоваяСтрока = ТаблицаСборки.Добавить();
```
Добрый день! Подскажите, чем может быть чревато изменение периодичности регистра с в пределах дня на в пределах секунды?
---
Ничем.
---
Номинально ничем. Если б в обратную сторону, там возникли бы проблемы.
---
Чревато может быть тем, что в течении дня будет много записей по одной комбинации значений измерений, вместо одной.
Где это "выстрелит" - нужно анализировать остальные механизмы, завязанные на изменяемый регистр.
---
Ничем.
---
создайте свой регистр в песочной базе
создайте две записи
поменяйте периодичность туда-сюда и сделайте вывод

и опыт, сын ошибок трудных
---
для того, чтобы сделать какой то вывод, надо понимать на что проверять. Нужен сценарий тестирования. А его у меня нет. Даже если я его сделаю, то может быть что то останется, не охваченным. Что, в дальнейшем, может испортить рабочую базу.
---
Номинально ничем. Если б в обратную сторону, там возникли бы проблемы.
Добрый день, подскажите как использовать Параметры формы вне обработки ПриСозданииНаСервере. Дело обстоит так: из Формы1 в Форму2 передаются параметры. в Форме2 они есть только в обработке ПриСозданииНаСервере. В дальнейнем эти данные из параметров нужно обработать после нажатия кнопки, но в серверной процедуре я не могу их вызвать. Знаю что нужно в момент создания их сохранить куда либо, но не знаю как.
---
Конечно, т.к. параметры формы - по сути структура. Сохранять в структуру, которая будет в созданном вами реквизите.
(4) Для включения ключевого параметра, нужно создать параметр формы вручную, задать ему какое-то уникальное имя, которое не используется для параметров, используемых по-умолчанию платформой, и включить одноименный флажок.
---
я что-то слышал про ключевой параметр формы, говорят он сохраняется пока форма существует
---
вот и я слышал, но толком на гуглить не могу
---
Создайте реквизит формы с типом Произвольный и сохраняйте в него в виде структуры в той же "ПриСозданииНаСервере"
---
т.е. у меня в параметрах передается массив и я смогу его туда сохранить?
и сохранять в реквизит или в параметрах?
---
Конечно, т.к. параметры формы - по сути структура. Сохранять в структуру, которая будет в созданном вами реквизите.
(4) Для включения ключевого параметра, нужно создать параметр формы вручную, задать ему какое-то уникальное имя, которое не используется для параметров, используемых по-умолчанию платформой, и включить одноименный флажок.
Добрый день!

Есть файл в Excel - табель. В клетках указаны фактически отработанные часы.
Данные из этого файла загружаем в 1С в документ Индивидуальный график.

Замечена следующая особенность:
Если в файле Excel число не помещается в ячейку, то Excel для отображения округляет значение в этой ячейке (при этом в самой ячейке остается верное неокругленное значение!). Если сделать ячейку шире - то Excel покажет верное неокругленное значение!!!
(Например, значение 4.68 отображается как 5).

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

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

Может быть есть какие-то настройки в Excel? Что за странность? В ячейке значение одно, а грузится другое=округленное?

Спасибо!
---
Значение нужно брать из свойства Value. Что-то вроде:

```1c
    Значение = ЛистЭксель.Cells(Строка, Колонка).Value;
```
---
значения нужно брать из ЛистЭксель.Range().Value :)
---
С помощью чего выполняете загрузку файла?
---
Значение нужно брать из свойства Value. Что-то вроде:

```1c
    Значение = ЛистЭксель.Cells(Строка, Колонка).Value;
```
---
значения нужно брать из ЛистЭксель.Range().Value :)
---
у меня такой код:

ТекСотрудник = Excel.Cells(Строка1, 3).Text;

в этом проблема?
---
Именно. Сделайте Excel.Cells(Строка1, 3).Value
---
Спасибо! Все получилось!
---
да, действительно в этом была проблема!
Спасибо всем, кто помогал!
---
Нужно либо код тогда исправлять, либо в Экселе поставить автоширина колонок, и формат ячейки - число (2 знака после запятой)
---
что там исправлять ? ТабДок.Прочитать заменить на ТабДок.ПрочитатьКакНадо ? хыхых.... Там всё переписывать надо на старый ОЛЕ...
---
Это стандартный "особенность" импортёра 1С. В табличный документ загружается не значение, а то, как оно выглядит. Не знаю, как оно там изнутри, но факт остаётся фактом.
---
да, именно так!
Ошибка: Значение не является значением объектного типа (ДокументОснование).

{Справочник.Контрагенты.Форма.ФормаСпискаСБланкЗаказамиУФ.Форма(1745)}: Ошибка при вызове метода контекста (ПолучитьФорму)
  ФормаРКО = ПолучитьФорму("Документ.РасходныйКассовыйОрдер.Форма.ФормаДокумента", СтруктураРКО);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{Документ.РасходныйКассовыйОрдер.МодульОбъекта(173)}: Значение не является значением объектного типа (ДокументОснование)
 Если ЗначениеЗаполнено(ДанныеЗаполнения.ДокументОснование) Тогда

В чем проблема?
---
Видимо, проблема в том, что кто-то написал обработчик заполнения и не учел, что ДанныеЗаполнения могут быть пустыми или не содержать реквизита ДокументОснование.
---
Видимо, проблема в том, что кто-то написал обработчик заполнения и не учел, что ДанныеЗаполнения могут быть пустыми или не содержать реквизита ДокументОснование.
Создаю роль с одним документом (авансовый отчет, в принципе мог бы быть любой другой документ) на все права, на что нужно открыть доступ кроме регистров куда делает записи документ и справочников используемых в шапке и табличной части.
---
Предлагаю брутфорс
1. Даешь тестовому юзеру новую роль (вдобавок к роли Пользователь, конечно)
2. Заходишь под этим юзером, создаешь и проводишь документ
3. Смотришь Журнал регистрации с фильтром Пользователь = тестовый юзер, Событие = Отказ в доступе
4. Добавляешь в новую роль новые права и возвращаешься в пункт 2.
И до победного... ))
---
Ну на запуск толстого клиента, если мы говорим об УПП.
---
Предлагаю брутфорс
1. Даешь тестовому юзеру новую роль (вдобавок к роли Пользователь, конечно)
2. Заходишь под этим юзером, создаешь и проводишь документ
3. Смотришь Журнал регистрации с фильтром Пользователь = тестовый юзер, Событие = Отказ в доступе
4. Добавляешь в новую роль новые права и возвращаешься в пункт 2.
И до победного... ))
---
А могут возникнуть ситуации когда в журнале регистрации не отразится запись о не полученной информации?
---
Любое изменение отражается в ЖР. Если изменение не прошло, то фиксируется ошибка. Там только операций чтения нет
---
То есть если в модуле документа запрашиваются данные (например справочник на чтение), и, в соответствии с настройкой прав эти данные не доступны для чтения, тогда в ЖР записи об ошибке доступа не будет?
---
ЖР записи об ошибке доступа не будет Будет событие - Отказ в доступе
---
Спасибо, буду проверять роль на документ по ошибкам в ЖР
Коллеги, кто сталкивался с подобной задачей?
В РМК Розницы 2.2. надо добавить кнопку открытия отчета Лишние продажи, в макет в Настройках добавил строчку
Добавил поле картинки кнопки (скопировал у соседней кнопки)
Прописал обработчики

При нажатии появляется окно с пустой строкой типа Предупреждение("");
Обработчик не срабатывает. Ничего не происходит...
Не могу понять где ещё что надо прописать
---
все через выхлопную трубу сделано
еще обычная кнопка нужна, со своим обнаботчиком
и у картинки свой обработчик Нажатия и в ней первой строкой
 СтандартнаяОбработка = Ложь;
...

в общем все как по примеру уже существующих кнопок-картинок
---
все через выхлопную трубу сделано
еще обычная кнопка нужна, со своим обнаботчиком
и у картинки свой обработчик Нажатия и в ней первой строкой
 СтандартнаяОбработка = Ложь;
...

в общем все как по примеру уже существующих кнопок-картинок
---
Спасибо, всё получилось, очень много заморочек с этими кнопками на самом деле, создал кнопку, продублировал процедура на основании Кнопки "Акции", только изменил номер после "ПО". В старой Рознице 2.0 всё проще было
Добрый день!

Конфигурация Розница 2.2. Необходимо установить ограничение на просмотр видов цен, чтобы пользователь мог видеть в документе Установка цен номенклатуры только те виды цен, у которых установлена галочка Использовать при продаже. Как это можно сделать? Через RLS? Или можно как-то код изменить? Есть запрос, который получает виды цен, но изменить его, сделать условие, не получается. Программа выдает ошибку.

Заранее благодарю за ответ!
---
То есть, настройки в группах доступа вам не помогли?
---
То есть, настройки в группах доступа вам не помогли?
---
Нет
---
Хотя нет, не так немного сделала. Такая настройка помогла. Спасибо!
```1c
    Движения.Сертификаты.Записывать = Истина;
```

Поле не обнаружено (Сертификаты).

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

    //открываем и активируем документ
    СсылкаМакет = Word.Application.Documents(1);

    СсылкаМакет.Activate();
    Если ПечататьНаПринтер Тогда
    СсылкаМакет.Application.PrintOut(); // отправляем на принтер
    СсылкаМакет.Application.Visible = Ложь; //не показываем документ
    иначе
    СсылкаМакет.Application.Visible = Истина; //показываем документ
    КонецЕсли;
```
---
Если используете стандартные методы по прикреплению файлов к позиции штатного расписания, тогда можно хватать двоичные данные.

```1c
    Макет = РаботаСФайлами.ДвоичныеДанныеФайла(Шаблон);
    WordApp = Новый COMОбъект("Word.Application");
```

вместо

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

Описание функции ДвоичныеДанныеФайла:

```1c
    // Возвращает двоичные данные файла.
    // Если двоичные данные файла не найдены в информационной базе или в томах, будет вызвано исключение.
    //
    // Параметры:
    // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - Ссылка на элемент справочника с файлом.
    //
    // Возвращаемое значение:
    // ДвоичныеДанные - двоичные данные присоединенного файла.
    //
```
---
```1c
    СсылкаМакет = ОбработкаОбъект.ПолучитьМакет("Тест");
    Word = СсылкаМакет.Получить();

    //открываем и активируем документ
    СсылкаМакет = Word.Application.Documents(1);

    СсылкаМакет.Activate();
    Если ПечататьНаПринтер Тогда
    СсылкаМакет.Application.PrintOut(); // отправляем на принтер
    СсылкаМакет.Application.Visible = Ложь; //не показываем документ
    иначе
    СсылкаМакет.Application.Visible = Истина; //показываем документ
    КонецЕсли;
```
---
Если используете стандартные методы по прикреплению файлов к позиции штатного расписания, тогда можно хватать двоичные данные.

```1c
    Макет = РаботаСФайлами.ДвоичныеДанныеФайла(Шаблон);
    WordApp = Новый COMОбъект("Word.Application");
```

вместо

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

Описание функции ДвоичныеДанныеФайла:

```1c
    // Возвращает двоичные данные файла.
    // Если двоичные данные файла не найдены в информационной базе или в томах, будет вызвано исключение.
    //
    // Параметры:
    // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - Ссылка на элемент справочника с файлом.
    //
    // Возвращаемое значение:
    // ДвоичныеДанные - двоичные данные присоединенного файла.
    //
```
у меня есть ТЗ в которой нужно оставить строки сумма которых чуть больше определенного числа.
Например: общ сумма 400
строка1 100
строка2 200
строка3 150
строка4 500

в итоге получить нужно ТЗ:
строка1 100
строка2 200
строка3 150
---
тогда так, не супер оптимально но работать будет

```1c
    ПроверяемаяСумма = 400;
    ОбщаяСумма = 0;

    МассивУдаляемыхСтрок = новый Массив;

    Для каждого строка из ТЗ цикл

    Если ОбщаяСумма > ПроверяемаяСумма тогда

    МассивУдаляемыхСтрок.Добавить(строка );

    КонецЕсли;

    ОбщаяСумма =ОбщаяСумма + строка.ОбщСумма;

    КонецЦикла;

    Для каждого УдаляемаяСтрока из МассивУдаляемыхСтрок цикл
    ТЗ.Удалить(УдаляемаяСтрока );
    КонецЦикла;
```
---
нужно оставить строки сумма которых чуть больше определенного числа Постановка задачи - шедевральна!

Варианты условия:
- чуть больше
- чуть-чуть больше
- ну почти такая же
- лишь бы не меньше!
---
Вам достаточно перебора строк и переноса подходящих в новую таблицу значений (удаления в той же) или интересует реализация в СКД с нарастающим итогом и условием на нарастающий итог?
---
достаточно просто перебора
---
```1c
    МассивУдаляемыхСтрок = новый Массив;

    Для каждого строка из ТЗ цикл

    Если строка.ОбщСумма>400 тогда
    МассивУдаляемыхСтрок.Добавить(строка );
    КонецЕсли;

    КонецЦикла;

    Для каждого УдаляемаяСтрока из МассивУдаляемыхСтрок цикл
    ТЗ.Удалить(УдаляемаяСтрока );
    КонецЦикла;
```
---
так не попадет строка3
---
попадет
---
либо я не понял условие, должны остаться строки, когда их сумма наберет больше 400, суммируясь по очереди?
---
да все так
---
тогда так, не супер оптимально но работать будет

```1c
    ПроверяемаяСумма = 400;
    ОбщаяСумма = 0;

    МассивУдаляемыхСтрок = новый Массив;

    Для каждого строка из ТЗ цикл

    Если ОбщаяСумма > ПроверяемаяСумма тогда

    МассивУдаляемыхСтрок.Добавить(строка );

    КонецЕсли;

    ОбщаяСумма =ОбщаяСумма + строка.ОбщСумма;

    КонецЦикла;

    Для каждого УдаляемаяСтрока из МассивУдаляемыхСтрок цикл
    ТЗ.Удалить(УдаляемаяСтрока );
    КонецЦикла;
```
---
да. похоже на то. Сейчас подумаю что дальше с этим делать. спасибо! вопросы будут напишу сюда
---
рез1=зап.Выполнить().Выгрузить();
    МассивУдаляемыхСтрок = новый Массив;
    сум=0;
    Для каждого строка из рез1 цикл
     сум=строка.приход+сум;
     Если ВыборкаДоговорКонтрагента.ОстатокНач>сум тогда
      МассивУдаляемыхСтрок.Добавить(строка );
     КонецЕсли;
    КонецЦикла;

    Для каждого УдаляемаяСтрока из МассивУдаляемыхСтрок цикл
     рез1.Удалить(УдаляемаяСтрока );
    КонецЦикла;
удаляет все нужные строки