arefaste/1C_Forums huggingface dataset:
Добрый день форумчане! Помогите решить задачу :)
Есть таблица значений. У нее есть колонки, интересуют только 2. Себестоимость и Себестоимость документа.
Нужно для каждой строки этой таблицы значения себестоимость записать в себестоимостьдокумента и в конечном итоге проссумировать эту колонку.
С одной строки записать в другую не проблема.

```1c
    Для Каждого Строка Из ТаблицаЗапасы Цикл

    Строка.СебестоимостьДокумента = Строка.Себестоимость*Строка.Количество;

    КонецЦикла;
```

Например, есть 2 позиции в этой таблице, у одной значение 500 у другой 1000
Нужно чтобы в итоге в строке себестоимостьдокумента было 1500
Подскажите как сделать?
Добавил

```1c
    ИтогСебестоимость = ТаблицаЗапасы.ВыгрузитьКолонку("СебестоимостьДокумента");
```

На выходе имею массив, как их сложить?
---
ТаблицаЗначений метод Итог (Total) или Свернуть (GroupBy)?
---
ТаблицаЗначений метод Итог (Total) или Свернуть (GroupBy)?
---
Итог=ИтогСебестоимость.Итог("ИтогИмяКолонки");
Документ=Ссылка.получитьОбъект();
Документ.ИтогЧегототам=Итог;
Документ.Записать(МетодЗаписи)
---
Большое спасибо за ответы!
Сделал так:

```1c
    ИтогСебестоимость = ТаблицаЗапасы.Итог("СебестоимостьДокумента");

    ТаблицаДоходыИРасходы = ДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаДоходыИРасходы;

    ВыгружаемСуммуДоходов = ТаблицаДоходыИРасходы.Итог("СуммаДоходов");

    РассчитаныйДоход = ВыгружаемСуммуДоходов + ИтогСебестоимость;

    ТаблицаДоходыИРасходы.Колонки.СуммаДоходов = РассчитаныйДоход;
```

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

    Форма = ПолучитьФорму("Справочник.ВнутренниеДокументы.ФормаОбъекта");
    ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
    ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере
    КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
    Форма.Открыть();

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

```1c
    &НаСервере
    Функция ЗаполнитьДокументНаСервере(ДанныеФормы);

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ВнутренниеДокументы.Ссылка
    |ИЗ
    | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
    |ГДЕ
    | ВнутренниеДокументы.ВнутреннийНомерДокумента = &ВнутреннийНомерДокумента";

    Запрос.УстановитьПараметр("ВнутреннийНомерДокумента", "ДляСозданияНаОснованииСертифик");

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    НовыйОбъект = ВыборкаДетальныеЗаписи.Ссылка.Скопировать();
    НовыйОбъект.ВнутреннийНомерДокумента = Объект.ВнутреннийНомерДокумента;
    НовыйОбъект.ДатаДокумента = ТекущаяДата();
    НовыйОбъект.ПометкаУдаления = Ложь;
    НовыйОбъект.Материал = Объект.Материал;

    Если GUID = ПустойGUID Тогда

    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = "Плавка не выбрана";
    Сообщение.Сообщить();

    Иначе

    Для Каждого Стр2 Из Объект.ХимСостав Цикл

    Если Стр2.IDСопоставления = GUID Тогда

    НоваяСтрока = НовыйОбъект.ХимСостав.Добавить();
    НоваяСтрока.ХимическийЭлемент = Стр2.ХимическийЭлемент;
    НоваяСтрока.КоличествоПоГОСТ = Стр2.КоличествоПоГОСТ;
    НоваяСтрока.Количество = Стр2.Количество;
    НоваяСтрока.СодержитОт = Стр2.СодержитОт;
    НоваяСтрока.СодержитДо = Стр2.СодержитДо;

    КонецЕсли;

    КонецЦикла;

    Для Каждого Стр1 Из Объект.Плавки Цикл

    Если Стр1.IDСопоставления = GUID Тогда

    НовыйОбъект.НомерПлавки = Стр1.НомерПлавки;

    КонецЕсли;

    КонецЦикла;
    КонецЕсли;

    Попытка

    Строка = Объект.Заготовка.НайтиПоИдентификатору(Элементы.Заготовка.ТекущаяСтрока);

    НовыйОбъект.Заготовка = Строка.Заготовка;
    НовыйОбъект.ЗаводскойНомерЗаготовки = Строка.НомерЗаготовки;

    Исключение

    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = "Заготовка не выбрана";
    Сообщение.Сообщить();

    КонецПопытки;

    КонецЦикла;

    Док = НовыйОбъект;

    ЗначениеВДанныеФормы(Док,ДанныеФормы);

    КонецФункции
```

В файловом варианте все работает, как только переношу изменения на сервер, начинает ругаться на "ЗначениеВДанныеФормы". В чем может быть загвоздка?
---
Я же забыл на сервере создать документ, который копирую! Все работает, вопрос закрыт.
---
Я же забыл на сервере создать документ, который копирую! Все работает, вопрос закрыт.
Происходит автозапуск обработки обмена данными ориентировочно/примерно через 15 минут после запуска предприятия, все регламентные задания выключены(проверяла в консоли задач), фоновые задания заблокированы. В отладке если смотреть стек вызовов - вызывается из модуля обычного приложения,а как туда попало не ясно. Вопрос: где искать?как искать?
---
Проблема решилась, заходила под пользователем, для которого в настройках указан автозапуск обмена данными.
---
УПП типовая? Какая версия?
---
В модуле обычного приложения поищите
"ПодключитьОбработчикОжидания("ИмяВызываемогоМетода", )
---
Проблема решилась, заходила под пользователем, для которого в настройках указан автозапуск обмена данными.
День добрый!

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

Если документы одного формата - портрет!, то все нормально, если же есть документ ландшафт, то все портится, либо все становится портретом или ландшафтом.

Установка ориентации страницы
ОриентацияСтраницы.Ландшафт или ОриентацияСтраницы.Портрет - не помагает.
---
Как вариант печать отдельно документ с другой ориентацией.
---
У вас проблема в том, что по сути выводится на печать один табличный документ, но с разделителями страницы. Не получится их вывести с разной ориентацией страницы.
---
что в таком случае лучше сделать?

Может сделать тогда вывод в разные листы?
---
Как вариант печать отдельно документ с другой ориентацией.
---
Спасибо, сделал вывод в отдельные документы, если ландшафт
Добрый день !
ERP 2.0
Подскажите пожалуйста, - какая роль нужна чтобы заводить на Сотрудника - Договор ГПХ ?
---
Добрый день!

В объектах конфигурации, нет как такового Договора ГПХ, есть "Договор авторского права" и "Договор (работы, услуги)".
Роль для пользователя: ДобавлениеИзменениеДоговоров
---
Договор ГПХ
Расчетчик вроде.
---
Напишите ваше сообщение
(2)В Профили групп доступа - у Расчетчик есть Добавление изменение договоров..
---
Добрый день!

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

Нельзя из под пользователя главную страницу под себя настроить?
---
если нет в рабочей области нужно обработки, то нет. Конфигуратор-корень-рабочая область.
---
если нет в рабочей области нужно обработки, то нет. Конфигуратор-корень-рабочая область.
Здравствуйте.
Бухгалтерия 3.0. При при проведении док. "Передача основных средств". возникает ошибка:

В способе отражения расходов по амортизации "Амортизация (счет 20.01)" в строке 1 не заполнено подразделение на счете 20.01.
Заполните аналитику в способе отражения

Захожу в способ в ОС - Смотрю способ отражения амортизации. В не заполнено подразделение.
Т.е нужно для каждого подразделения создавать свой способ отражения?

Спасибо.
---
У нас для каждого подразделения создан отдельный элемент справочника, указана статья затрат с характером производственные или общепроизводственные и счет соответственно 20.01 или 25.01
---
Как совет: Можете использовать 25 счет (что чаще и делают).
---
Т.е либо несколько способов амортизации со счетом 20.01 (для каждого подразделения свой) . Либо 25 ?
---
К сожалению да.
---
У нас для каждого подразделения создан отдельный элемент справочника, указана статья затрат с характером производственные или общепроизводственные и счет соответственно 20.01 или 25.01
---
Ясно. Спасибо.
Не получается заполнить табличную часть «Серии» документа «Заказ клиента».

Вариант1: ТаблСерий = ЗаполнениеСерийНовый(Ссылка);
ЭтотОбъект["Серии"].Загрузить(ТаблСерий);
Попытка
ЭтотОбъект.Записать();
Исключение
КонецПопытки;

Вариант2: ТаблСерий = ЗаполнениеСерийНовый(Ссылка);
 Для Каждого СтрокаТЧ ИЗ ТаблСерий Цикл
  НоваяСтрока = ЭтотОбъект.Серии.Добавить();
  НоваяСтрока.Количество = СтрокаТЧ.Количество;
  НоваяСтрока.Номенклатура = СтрокаТЧ.Номенклатура;
  НоваяСтрока.Серия = СтрокаТЧ.Серия;
  НоваяСтрока.Склад = СтрокаТЧ.Склад;
  НоваяСтрока.УказыватьСерии = СтрокаТЧ.УказыватьСерии;
  НоваяСтрока.Характеристика = СтрокаТЧ.Характеристика;
 КонецЦикла;
 ЭтотОбъект.Записать();

Вариант3: ТаблСерий = ЗаполнениеСерийНовый(Ссылка);
 Для Каждого СтрокаТЧ ИЗ ТаблСерий Цикл
  НоваяСтрока = ЭтотОбъект.Серии.Добавить();
  ЗаполнитьЗначенияСвойств(НоваяСтрока, ТаблСерий);
 КонецЦикла;
 ЭтотОбъект.Записать();

Где ТаблСерий тип ТЗ (колонки: ИсходныйНомерСтроки, Количество, Номенклатура, НомерСтроки, Серия, Склад, УказыватьСерии, Характеристика). Ошибки не выводит но не заполняет, помогите...
---
.
---
не смешно, конечно, но напоминает бессмертную миниатюру МихалМихалыча Жванецкого про консерваторию. Кто постарше помнят, наверное.
ЗаполнениеСерийНовый(Ссылка) чего-нибудь заполняет? Отладчик работает? Чем тут помочь можно?
Ну и конечно когда называешь процедуры Новый(), СамыйНовый() и так далее, ставь туда еще дату. ЗаполнениеСерийНовый201706(). Чтобы потом понимать, кто из них новее.
---
Почему везде стоит "ЭтотОбъект"? В контексте формы это форма, а нужно оперировать с данными объекта.
---
.
---
потому что процедуру надо выполнить при проведении документа
---
во-первых, тогда нужно говорить в каком контексте этот код выполняется, а во-вторых, в процессе проведения проведении писать "ЭтотОбъект.Записать()" кажется абсурдно.
Конфигурация УПП, платформа 8.3.8.
База файловая.
При попытке сохранить встроенный отчет как внешний платформа зависает...

Может кто сталкивался ? Что сделать ?
---
причина была в винде... После перезагрузки винды заработало... (раньше такого ни разу не видел...)
---
не должно быть такого. Проверьте целостность базы, попробуйте на другом компе, под другим пользователем и т.д.
---
...целостность базы - все норм. ...на другом компе - пока нет возможности...
---
значит выгрузи CF-ник.
Создай пустую базу,
загрузи в нее CF-ник.
И сохрани свой отчет как внешний
---
Универсальный отчет выгружается, он там только вид регистра по хорошему меняет и все. Предыдущая (8) мысль дельная, ну и кэш попробуй сбросить и выгружать в другую папку. мало ли.
---
Удалите из списка баз свою базу и добавьте заново, после этого заново сохраните отчет на диск
---
Удалите из списка баз свою базу и добавьте заново - не помогло... зависает на 63% в строке состояния "Продажи.УниверсальныйОтчет".... может быть проблема в том, что в этом отчете используется УниверсальныйОтчет ?
---
Не в этом дело, протестируйте базу
---
уже протестировал... никаких ошибок...
---
причина была в винде... После перезагрузки винды заработало... (раньше такого ни разу не видел...)
---
если кому будет интересно Винда 7 проф (32 бит)
---
Это на разных версиях ОС бывает. Перезагрузка - это первое, что делаем.
Добрый день.
Возник вопрос по алгоритму.
Есть некоторая таблица с номерами строк и суммами, которые соответствуют строкам.
Есть искомая сумма.
Задача: необходимо в таблице найти те строки, которые соответствуют искомой сумме.

Пример таблицы. Есть сумма 260933,88, данной сумме соответствуют строки 1+7+10 (83910,84+79389,12+97633,92 = 260933,88)
НомерСтроки Сумма
1 - 83910,84
4 - 75670,43
7 - 79389,12
10 - 97633,92
13 - 76960,65
16 - 62301,81
19 - 63908,38
22 - 88670,81
25 - 68108,34

Никак не могу сообразить, как мне это в коде описать.
Спасибо
---
цикл пишешь, чего думать в рекурсии))
---
В http://infostart.ru/public/460935/ в задаче 23 есть готовая функция, также в процессе обсуждения в комментариях к этой статье ее улучшенные версии.
---
Первое что приходит на ум, это симплекс метод.

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

Правда есть нюанс, что сумма может совпасть при разных комбинациях. Например в нескольких строках будет одинаковые суммы.
Хотя, если задача учебная - то пофиг, а если реальная - то надо смотреть
---
На mista тема есть http://www.forum.mista.ru/topic.php?id=129178
---
Добрый день. Есть такая задача в комбинаторике "Задача о рюкзаке" называется.
посмотрите в сторону http://infostart.ru/public/184599/
---
В http://infostart.ru/public/460935/ в задаче 23 есть готовая функция, также в процессе обсуждения в комментариях к этой статье ее улучшенные версии.
Приветствую. Есть отчет в виде таблицы. В колонки выводится номенклатура, в строки - организация. Как в заголовках колонок убрать надписи (но не сами ресурсы) количествоОборот ?
---
Использовать макет в СКД
---
Использовать макет в СКД
---
да, уже сделал. Макет - заголовка группировки.
Добрый день.

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

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

В роль на право чтения кидаешь шаблон рлс типа:

```1c
    НекийРегистр ГДЕ НекийРегистр.Касса В
    (&СписокКасс)
```
---
ну для начала определитесь, где их видно. А потом уже смотрите, что конкретно ограничить. Если это надпись на форме - сделайте её невидимой, если отчет - сделайте другой макет. Ну и по-аналогии...
---
Кроме как сделать другой макет вариантов нет?
---
Вопрос слишком широко задан. Конкретика нужна.
---
Лучше сделайте RLS на чтение нужного регистра. Тогда пользователь сможет проводить документы, но не сможет сформировать отчет или еще где-то посмотреть.
---
А можешь помочь,а то я не сильно с рлс не знаком. Там хотя бы текст шаблона.
---
Можно в типовой конфигурации посмотреть в какую-нибудь роль, как там сделано.

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

В роль на право чтения кидаешь шаблон рлс типа:

```1c
    НекийРегистр ГДЕ НекийРегистр.Касса В
    (&СписокКасс)
```
---
Понял. Спасибо большое!
---
В УПП вот так делал:
http://infostart.ru/public/553498/

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

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

Такой вопрос, есть у меня типовая процедура, которая требует Объект (из документа).
Можно мне как то ей передать это объект из общего модуля.
Как я сделал:

```1c
    ПараметрыФормы = Новый Структура("Ключ", Этап);
    Форма = ПолучитьФорму("Документ.ЭтапПроизводства2_2.Форма.ФормаДокумента", ПараметрыФормы);

    Детали = РаботаСЭтапамиСервер.ЗаполнитьОбеспечениеВУстановленномПорядке(ПереченьВариантов, Форма.Объект, ЛюбойЭтап);
```

Но выдает ошибку:
Нельзя изменять поле, содержащее объект данных формы.

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

Но опять же, в новой форме таблица будет пустая.
---
А что в процедуре ЗаполнитьОбеспечениеВУстановленномПорядке? И зачем передавать объект из формы? Может так:

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

Скорее всего, получится ускорить работу в 10-20 раз.

(2) транзакции и на чтение бывают.
Насчет архитектора согласен.
---
Не приходилось. Спасибо, посмотрю.
Добрый день!
Есть вопрос по ситуации:
1. Регистр сведений (_РегистрацияСобытий), подчинённый регистратору, периодичность в пределах секунды + измерение ссылка на справочник (клиент)
2.
```1c
    Движения._РегистрацияСобытий.Записывать = Истина;
    Движения._РегистрацияСобытий.Очистить();
    Движение = Движения._РегистрацияСобытий.Добавить();
    Движение.Период = Дата;
    Движение.Клиент = СубъектПереговоров;
```

Проблема в том, что примерно раз на несколько сотен документов появляется ошибка "Запись с такими полями уже существует".

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

У меня здесь нет цикла в записи, один документ - одна запись.

Запись движений при проведении - записывать выбранные.
Удаление движений - Удалять автоматически при отмене проведения.

Набор у меня пустой (даже на всякий случай чищу), старые движения должны перезаписаться.

Причём ошибка раз на несколько сотен документов, вот в чём вопрос. Глюк платформы?
---
Странно. А у документа Удаление движений установлено удалять автоматически?
---
Поставьте периодичность по позиции регистратора