arefaste/1C_Forums huggingface dataset:
Хочу програмно перевести бизнес процесс на следующую точку маршрута, Пишу вот такой код:

&НаКлиенте
Процедура Записать(Команда)
  ИзменитьБизнесПроцесс();
КонецПроцедуры
&НаСервере
Процедура ИзменитьБизнесПроцесс()
 Объект = Реквизит1.ПолучитьОбъект();
 Объект.Контрагент = Контрагент;
 ОбъектЗадача = Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
 ОбъектЗадача.Выполнена = Истина;
 Объект.Записать();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  Реквизит1 = Параметры.БП;
  Реквизит2 = параметры.Задача;
КонецПроцедуры

пишет ошибку:
Элемент не выбран
{ОбщаяФорма.ФормаДляЗадачи1.Форма(10)}:ОбъектЗадача = Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
{ОбщаяФорма.ФормаДляЗадачи1.Форма(3)}:ИзменитьБизнесПроцесс();

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

```1c
    Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
```

Тут сразу 2 замечания:
1. Надо проверять заполнено ли поле "Ведущая задача. Если нет - смысл делать всё остальное?
2. У вас и так в реквизите лежит ссылка, в таком случае достаточно написать так:

```1c
    Объект.ВедущаяЗадача.ПолучитьОбъект();
```

Ну и главное. Чтобы выполнить задачу есть специальный программный метод:
```1c
    ЗадачаОбъект.ВыполнитьЗадачу();
```

P.S. Запись объектов лучше завернуть в попытку, т.к. объект может и не записаться и надо об это корректно сообщить пользователю.
---
наверное не заполнено поле ВедущаяЗадача. Да, и почему именно ведущую пытаетесь выполнить? По БП может быть +100500 задач...
---
Не подскажете как получить ссылку именно на ту задачу, которую пользователь выберет в списке
---
Если работаете со списком, то там есть метод ВыделенныеСтроки.

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

```1c
    Объект.ВедущаяЗадача.Ссылка.ПолучитьОбъект();
```

Тут сразу 2 замечания:
1. Надо проверять заполнено ли поле "Ведущая задача. Если нет - смысл делать всё остальное?
2. У вас и так в реквизите лежит ссылка, в таком случае достаточно написать так:

```1c
    Объект.ВедущаяЗадача.ПолучитьОбъект();
```

Ну и главное. Чтобы выполнить задачу есть специальный программный метод:
```1c
    ЗадачаОбъект.ВыполнитьЗадачу();
```

P.S. Запись объектов лучше завернуть в попытку, т.к. объект может и не записаться и надо об это корректно сообщить пользователю.
---
Спасибо за помощь, получил объект по ссылке и воспользовался методом "ВыполнитьЗадачу"
Добрый день, переехали в новый офис, перевезли серверный пк и сменился ip, в Администрирование серверов 1С Предприятия удалила старый кластер, добавила новый с новым ip, восстановила базу в MS SQL, переопубликовала. Apache 2.4 не запускается в службах, пишет "не удалось запустить службу на локальный компьютер" (скрин ниже) в cmd посмотрела ошибку "httpd.exe: Syntax error on line 169 of C:/Apache24/conf/httpd.conf: Cannot load C:/Program Files (x86)/1cv8/8.3.15.1830/bin/wsap24.dll into server: %1 \xed\xe5 \xff\xe2\xeb\xff\xe5\xf2\xf1\xff \xef\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xe5\xec Win32."
Как можно решить данную проблему?
---
может
---
C:\Program Files (x86)\1cv8\8.3.15.1830\bin\wsap24.dll - а файлик то по этому пути есть?
---
Есть
---
Apache 32 битный?
---
Нет, 64
---
DLL тоже 64 должна быть
---
C:\Program Files (x86)\1cv8\8.3.15.1830\bin\wsap24.dll

а библиотека х32!!
---
Cannot load
это не говорит о его отсутствии
---
апачи кто устанавливал ранее ?
---
Не знаю, уже нет этого сотрудника
---
значит вы не указали подробности все...

переехали в новый офис, перевезли серверный пк и сменился ip,
в Администрирование серверов 1С Предприятия удалила старый кластер,
 добавила новый с новым ip,

поинтересуйтесь файлом хост на виндовс
---
Может кто-нибудь подсказать где можно скачать 8.3.15 для 64 бит?
---
ИТС
это же не тайна

на попрошайке могли и прикрыть...
---
может
---
Здравствуйте, скачала xampp на ноут, зарегистрировалась в создала новую базу данных WordPress в localhost, сначала все было хорошо но потом купила платную подписку и не розбираясь во всем удалила пользователя root так как думала что это старый аккаунт и он уже не нужен, после этого ничего не могла сделать и решила скачать на другом ноуте. Показывает что запрошенный URL-адрес не найден на этом сервере и внизу Apache/2.4.54 (Win64) OpenSSL/1.1.1p PHP/7.4.30 Server at local host port 80. Подскажите пожалуйста в чем проблема?
Здравствуйте, кто-то работал с унф подскажите создаюю в номенклатуре характеристику, а в пвх доп реквизитах она не появляется.
---
Характеристики и доп.реквизиты это разные вещи
---
выбор характеристик появится в ТЧ документов где выбирается Номенклатура.
---
Это понятно там проблема в другом, в номенклатуре есть х-ки это как понимаю из справочника х-ки, у клиента есть в номенклатуре автозаполнение цветов размеров. Так вот, кто-то создал х-ку с плохим названием. Удаляю ее из номенклатуры где х-ки. В одноименном справочнике нет ее, нажимаю автозаполнение цветов размеров она опять появляется. Хотя ни где нет больше ни в ПВх жоп рек ни в справочнике. А база сама в облаке, доступа к конфигуратору нет.
---
Характеристики и доп.реквизиты это разные вещи
---
Да с этим разобрался. В демо базе все нормально удалил из справочника, но в рабочей проблемы доработано, спасибо разбираюсь
Коллеги, добрый день, подскажите пожалуйста, есть такая задача, есть строка с числом необходимая для загрузки в реквизит документа, вся печаль в том что разделитель у этого числа запятая и в конце стоит точка, разделитель дробных частей точка, например 1,978.23. как избавиться мне от этих знаков препинания чтобы на выходе получить число 1 978.23?
---
Если там всегда точка, то
```1c
    Лев(<Строка>, СтрДлина(<Строка>) - 1);
```
---
= Число(СтрЗаменить(Лев(СтрокаСЧислом, СтрДлина(СтрокаСЧислом)-1), ",", ""))
---
избавляешься от запятой с помощью СтрЗаменить, затем переворачиваешь в число.
---
Число(СтрЗаменить(<Строка>, ",", ""))
---
Число(СтрЗаменить(, ",", ""))
Так я получу 1 987.23. а как еще убрать последнюю точку?
---
чтобы на выходе получить число 1 978.23
Так я получу 1 987.23

Где логика?)
---
точку в конце 1 987.23. еще стоит и в число не переводится
---
попробуйте сначала, вы получите нормальное число
---
Попробовал так и получается 1 987точка23точка, как избавиться от последней точки?
---
Если там всегда точка, то
```1c
    Лев(<Строка>, СтрДлина(<Строка>) - 1);
```
---
Лев(, СтрДлина() - 1);
Да, так получилось!
---
странно вы пробуете
---
У вас изначально в переменной СтрокаСЧислом стоит значение без точки в конце
---
= Число(СтрЗаменить(Лев(СтрокаСЧислом, СтрДлина(СтрокаСЧислом)-1), ",", ""))
---
Парни, спасибо вам огромное!!!
---
```1c
    ТипЧисло = Новый ОписаниеТипов("Число");
    Результат = ТипЧисло.ПривестиЗначение(СтрСоединить(СтрРазделить(СтрЗаменить(ВхСтрока,",","),".",Ложь),"."));
```
Доброго всем. Как можно реализовать временную блокировку(скрытие) остатков от некоторых пользователей в базе, чтобы не было возможности смотреть остатки в документах и отчетах? делать проверки во всех местах вывода остатков и по условию скрывать?
---
Остатки чего?
В каких документах вы нашли остатки?

При таких вводных могу только сделать предположение, что возможно подойдет
RLS, а в них проверка, например, на условие вхождения в группу и взведенную "константу/параметр сеанса и т.п.".

Надежно, плюс хорошо тормозит базу. :)

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

Ну и т.п. сами сообразите.
---
Остатки чего?
В каких документах вы нашли остатки?

При таких вводных могу только сделать предположение, что возможно подойдет
RLS, а в них проверка, например, на условие вхождения в группу и взведенную "константу/параметр сеанса и т.п.".

Надежно, плюс хорошо тормозит базу. :)

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

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

    |
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура.ЭтоГруппа,
    | Ссылка
    |ИТОГИ ПО
    | Ссылка ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ";
    Дерево=Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    Для каждого СтрокаДерева Из Дерево.Строки Цикл
    ЭлементыФормы.Дерево.Развернуть(СтрокаДерева, Истина);
    КонецЦикла;
```

выходит как элемент в виде группы
и как крайний элемент
как можно сделать вывод -1 уровень?
---
вот рабочий запрос!!!

```1c
    ВЫБРАТЬ
    |Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | НЕ Номенклатура.ЭтоГруппа
    | И Номенклатура.НетПоставщика = ИСТИНА
    |
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура.ЭтоГруппа,
    | Ссылка
    |ИТОГИ ПО
    | Ссылка ТОЛЬКО ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ
```
---
```1c
    ВЫБРАТЬ Номенклатура.Родитель
```
---
теперь лучше, но выводит вместо элементов группу
---
```1c
    ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | НЕ Номенклатура.ЭтоГруппа и Номенклатура.НетПоставщика = Истина
    // Тут могут быть условия
    |
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура.ЭтоГруппа,
    | Ссылка
    |ИТОГИ ПО
    | Ссылка.Родитель ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ
```

вот так выводит элементы в нормальной иерархии но без групп
---
вот рабочий запрос!!!

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

Есть такая задача есть ПК - на нем розница 2.3.

Владельцы хотят чтобы было 2 организации на 1 ом рабочем месте
то есть чтобы стояло 2 онлайн кассы и поним в зависимости от группы товаров пробивались чеки

например
Алкоголь по "Касса А"
Мороженное по "Касса М"

Есть много разработок по типу 2е ККТ с передачей данных на 1 рабочем месте
По идее не сложно будет прикрутить к ним проверку - на зависимость от группы номенклатуры

Если товар в группе Алкоголь то товары бьем по "Касса А"
Если товар в группе Мороженное то товары бьем по "Касса М"

Проблем теоретически не возникнет если прийдет покупатель и возьмет только Алкоголь или только Мороженное
Проблем теоретически не возникнет если прийдет покупатель и возьмет только И Алкоголь И Мороженное И пробьет за наличку
возникнет куча вопросов типа как считать кассу - но сразу говорю что 2 огранизации - это по сути один владелец, так что это не проблема ...

Проблема возинкает если прийдет покупатель и возьмет только И Алкоголь И Мороженное И пробьет за безнал

1ый вопрос - можно ли одновременно подключить 2а ЭТ от сбербанка к одному ПК? как технически решить эту проблему ?
2ой вопрос - возможно ли при пробитии чека програмно разбить безнал на 2е оплаты по "Касса А" и по "Касса М" - чтобы вылезло вначале на 1ом ЭТ оплата за Алкоглоь, затем на 2ом ЭТ за Мороженное ..

то есть хочется сделать так чтобы со стороны продавца не было никаких вычислений - приходит человек набирает товар и тот и тот. Кассир сканирует все скопом. И программа сама вначале просит оплтату по 1 ЭТ , печатает чек по по "Касса А", затем просит оплату по 2 ЭТ и печатает чек по по "Касса М"

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

```1c
    ВЫБРАТЬ
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата,
    Остатки.Количество
    ИЗ Остатки КАК Остатки
```

стало:

```1c
    ВЫБРАТЬ
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата,
    СУММА(Остатки.Количество) КАК Количество
    ИЗ Остатки КАК Остатки
    СГРУППИРОВАТЬ ПО
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата
```

Ну и важно - чтобы даты изначально отбирались как НАЧАЛОПЕРИОДА(РегистрОстатков.Период, ДЕНЬ) КАК Дата
---
просто сгруппируйте данные по дате в самом запросе :)
---
Так номенклатура разная
---
сгруппируйте по всем полям, кроме числовых :)
Что-то вроде было:

```1c
    ВЫБРАТЬ
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата,
    Остатки.Количество
    ИЗ Остатки КАК Остатки
```

стало:

```1c
    ВЫБРАТЬ
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата,
    СУММА(Остатки.Количество) КАК Количество
    ИЗ Остатки КАК Остатки
    СГРУППИРОВАТЬ ПО
    Остатки.Склад,
    Остатки.Номенклатура,
    Остатки.Дата
```

Ну и важно - чтобы даты изначально отбирались как НАЧАЛОПЕРИОДА(РегистрОстатков.Период, ДЕНЬ) КАК Дата
---
Так номенклатура же разная))
---
НАЧАЛОПЕРИОДА(РегистрОстатков.Период, ДЕНЬ)
Помогло, спасибо большое
---
а в СКД это у вас таблица ? (где колонки - дата)
---
Да, таблица
---
странно. тогда может быть вывод как дата, а в запросе получаете дату и время, поэтому оно их н егруппирует?
СтрокаТовары в момент печати счета фактуры использует какие то чудные
СтрокаТовары.НоменклатураНаименование,
   СтрокаТовары.ХарактеристикаНаименование,

чего точно нет в таб части документа,

мне нужно добавить в печать артикул

при неработающем отладчике клиент серверного режима
как через сообщить получить все реквизиты объекта строкатовары?
---
беру слова назад! все таки какой то мудрый человек сделал по людски
ДанныеПечати.Ссылка

там ссылка документа! ну хоть где то есть нормальная переменная
---
НоменклатураНаименование,ХарактеристикаНаименование это псевдонимы полей в запросе, смотрите запрос, а не таб часть
---
СтрокаТовары это скорее всего переменная цикла, тогда скорее всего тип коллекции цикла таблица значений. Попробуй перебрать в цикле колонки таблицы значений:
```1c
    Для Каждого КолонкаТЗ Из ТЗ Цикл
    Сообщить(КолонкаТЗ);
    КонецЦикла;
```

А так, правильный ответ предоставил (5) Сергей (Kolesonik).
---
```1c
    Сообщить(Запрос.Текст);
```
---
))
надо алгоритм типа
Сообщить (СтрокаТовары.Метаданные().ИмяОбъекта())
но на метаданные ругается
---
СтрокаТовары

Сложно сказать, не видя весь алгоритм, но подозреваю, что СтрокаТовары - это результат запроса, а не объект метаданных, поэтому и работать с ним так не получится.

Если же это строка таблицы значений можно попробовать обойти циклом колонки таблицы или конкретную строку циклом "Для каждого".
А дальше примерно так:

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

там ссылка документа! ну хоть где то есть нормальная переменная
---
Продолжайте наблюдение
Всем здравствуйте

Имеется отраслевое решение на базе бухгалтерии 3.0. В результате различных переносов и слияний в документе начислений, в табличной части пошла путаница по договорам, которую необходимо исправить.
Есть обработка, табличная часть которой выглядит примерно так:

Документ Операция Старый договор Новый договор Сумма
Начисление №1 Операция№1 Старый договор №хх Новый договор №1 10,00
Начисление №1 Операция№2 Старый договор №уу Новый договор №2 30,00
Начисление №2 Операция№1 Старый договор №хх Новый договор №1 10,00
Начисление №2 Операция№2 Старый договор №уу Новый договор №2 30,00
Начисление №3 Операция№3 Старый договор №zz Новый договор №3 20,00

Мне необходимо программно заменить старый договор на новый. При этом перебор строк ТЧ обработки с методом ПолучитьОбъект() для документа Начисления для последующей замены договора в тч документа не очень подходит, так как строк около 20 000 (при этом непосредственно документов гораздо меньше) и каждый раз получать объект, а потом еще и проводить, займет очень много времени.
Можно ли как-то по-другому массово изменить реквизиты табличной части документов?
---
Вы собираетесь внести изменения в проведённый документ. Проще всего , чтобы были сформированы нужные движения, документ провести.
Получайте документОбъект один раз сразу меняйте все нужные строки в табличной части и проводите.
Вам надо разные значения всё время подставлять, поэтому только перебором.
---
Вы собираетесь внести изменения в проведённый документ. Проще всего , чтобы были сформированы нужные движения, документ провести.
Получайте документОбъект один раз сразу меняйте все нужные строки в табличной части и проводите.
Вам надо разные значения всё время подставлять, поэтому только перебором.
---
спасибо, попробую
---
Обработку вы писали?
---
да, я
там много чего уже написано, это, так сказать, финал работы
---
Что если упорядочить строки в табличной части обработки по документу?
Получить один раз объект. Записать его ссылку в переменную.
При следующем прохождении цикла сравнить ранее сохраненную ссылку с текущей. Если совпадают, то поменять значение и не проводить документ.
Если не совпадают, изменить данные и провести документ по сохраненной ссылке. Заменить сохраненную ссылку новой, получить новый объект, изменить в нём первую нужную строку. Перейти на следующую итерацию цикла.
И за пределами цикла провести последний полученный объект.
---
именно так и стоит сделать, только переменная не нужна, можно сравнивать Если объект.Ссылка<>ТабСсылка
---
20 000 строк быстрее сделать как умеет программист. Это разовое действие, за ночь в любом случае справится, это не так много, смысла в оптимизации нет никакого.
---
спасибо
---
Всем спасибо
Здравствуйте. Помогите пожалуйста. Есть документ с табличной частю. При нажатии на кнопку заполнить должен заполнится ТЧ данными из другого документа но с учетом отбора Город, дата
Если убираю параметр дата все работает но выгружает абсолютно все документы за период, ставлю параметр дата вообще не работает
Вот запрос:

Запрос = Новый Запрос;
 Запрос.Текст =
  "ВЫБРАТЬ
  | Спецификация.Отправитель КАК Отправитель,
  | Спецификация.Получатель КАК Получатель,
  | Спецификация.СуммаИтого КАК Сумма,
  | Спецификация.ВесИтого КАК Вес,
  | Спецификация.УслугаИтог КАК Количество,
  | Спецификация.Дата КАК Дата
  |ИЗ
  | Документ.Спецификация КАК Спецификация
  |ГДЕ
  | Спецификация.Проведен
  | И Спецификация.ГородНазначения = &Город
  | И Спецификация.Дата = &Дата";

 Запрос.УстановитьПараметр("Город", Объект.ГородНазначения);
 Запрос.УстановитьПараметр("Дата", Объект.Дата);

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

 Выборка = РезультатЗапроса.Выбрать();
 Объект.ТабличнаяЧасть.Очистить();

 Пока Выборка.Следующий() Цикл

  НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
  ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);

 КонецЦикла;

Может где то не так делаю,
---
Очень подозреваю следующее.
1. Предположим у вас дата спецификации - 03.10.2022 10:14:25.
2. В новом документе дата будет чуть дальше, н-р: 03.10.2022 10:14:26.

Естественно эти даты между собой не равны и условие никогда не выполнится.

Что делать? делать поиск внутри промежутка в день:

```1c
    "И Спецификация.Дата МЕЖДУ &НачалоДня И &КонецДня";
    Запрос.УстановитьПараметр("НачалоДня", НачалоДня(Объект.Дата));
    Запрос.УстановитьПараметр("КонецДня", КонецДня(Объект.Дата));
```
---
Очень подозреваю следующее.
1. Предположим у вас дата спецификации - 03.10.2022 10:14:25.
2. В новом документе дата будет чуть дальше, н-р: 03.10.2022 10:14:26.

Естественно эти даты между собой не равны и условие никогда не выполнится.

Что делать? делать поиск внутри промежутка в день:

```1c
    "И Спецификация.Дата МЕЖДУ &НачалоДня И &КонецДня";
    Запрос.УстановитьПараметр("НачалоДня", НачалоДня(Объект.Дата));
    Запрос.УстановитьПараметр("КонецДня", КонецДня(Объект.Дата));
```
---
(2) Запрос.УстановитьПараметр("НачалоДня", НачалоДня(Объект.Дата));
Запрос.УстановитьПараметр("КонецДня", КонецДня(Объект.Дата));

Огромное спасибо!!! Заработала как надо