arefaste/1C_Forums huggingface dataset:
Кто-нибудь знает, есть ли какая выгода делить модули на "ВызовСервера" с перенаправляющими процедурами и на "Сервер"
вместо того, чтобы сделать один только "Сервер" с галкой "вызов сервера"? Просто в типовых именно первый вариант.
---
Как я себе это представляю, такой подход лишь правило хорошего тона. И редко могут привести к проблемам. Возможно эти статьи прольют хоть немного света:
https://its.1c.ru/db/content/v8std/src/500/i8100679.htm?_=1586363360
https://its.1c.ru/db/content/v8std/src/500/i8100678.htm?_=1586363360
---
Как я себе это представляю, такой подход лишь правило хорошего тона. И редко могут привести к проблемам. Возможно эти статьи прольют хоть немного света:
https://its.1c.ru/db/content/v8std/src/500/i8100679.htm?_=1586363360
https://its.1c.ru/db/content/v8std/src/500/i8100678.htm?_=1586363360
---
затрудняюсь ответить.

вопрос из серии "если выгода в том, что солнце встает на востоке?"
---
Думаю, тогда не стоит вообще отвечать.
Есть подозрение, что "вызов сервера" компилится и на клиенте в каком-то виде.
---
если метод из модуля "вызов сервера" не вызывают, то не компилиться
Перешли на новую УТ11 (с УТ10,3)
Все хорошо, месяц отработали. По одному клиенту перестали проводиться заказы.
Создаю заказ - все ок, на согласовании.
Склад неордерный. Перевожу заказ в резерв - ошибка
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1888)}: Ошибка при вызове метода контекста (Записать)
 Результат = Форма.Записать(ПараметрыЗаписи);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Ошибка при вызове метода контекста (Записать)
 Объект.Движения.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
Конфигурацию не меняла.
Прошлась отладчиком, в модуле МиграцияПриложений падает после отработки ЗарегистрироватьИзменения (отладка оттуда выходит и на строке КонецПроцедуры вылетает с ошибкой.)

```1c
    Процедура ПередЗаписьюНабора(Источник, Отказ, Замещение) Экспорт

    // ОбменДанными.Загрузка не требуется, т.к. подписка относится к плану обмена.
    ЗарегистрироватьИзменения(Источник);

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

Источник - РегистрНакопленияНаборЗаписей.РасчетыСКлиентамиПланОплат
Отказ - Ложь
Замещение - Истина
Последние документы по клиенту - загруженные из банка выписки. Попробовала отменить их проведение - также ругается на регистр

Запросом вывела данные по регистру. На первый взгляд криминала не вижу, поля заполнены одинаково...
Кто сталкивался, что может быть? На ровном месте...
---
Во всех функциях есть обработка «Заполнение регистров взаиморасчетов». Попробуйте использовать ее для исправления.
---
Попробуйте тестирование и исправление конфигурации сделать.
---
Во всех функциях есть обработка «Заполнение регистров взаиморасчетов». Попробуйте использовать ее для исправления.
---
гениально, огромное спасибо!!!
Знать бы все обработки, которые изначально встроены в УТ для исправления некорректного ее поведения...
Вели ЗП в бухгалтерии 3.0, с этого года решили начать вести учёт в ЗУП, сделал стандартный перенос данных: и не перенеслись ведомости на выплату ЗП в банк, в кассу да, а в банк нет. Причину понять не могу(
---
Вообщем посмотрев правила выгрузки, причину понял. Изначально работали в Бух 2.0, чтобы перенести в 3УП 3.1. обновил бухгалтерию до 3.0, после чего сделал перенос данных. Но, как оказалось, в бухгалтерии в документах "Ведомость на выплату в банк" при обновлении не заполняется реквизит "ВидМестаВыплаты" (участвует в условии выборки документов при выгрузке в ЗУП). Решение: заполняем через обработку "Групповое изменение реквизитов" и производим стандартную процедуру переноса данных заново!
---
Вообщем посмотрев правила выгрузки, причину понял. Изначально работали в Бух 2.0, чтобы перенести в 3УП 3.1. обновил бухгалтерию до 3.0, после чего сделал перенос данных. Но, как оказалось, в бухгалтерии в документах "Ведомость на выплату в банк" при обновлении не заполняется реквизит "ВидМестаВыплаты" (участвует в условии выборки документов при выгрузке в ЗУП). Решение: заполняем через обработку "Групповое изменение реквизитов" и производим стандартную процедуру переноса данных заново!
---
Спасибо огромное! Очень помогли! :-)
Хочу открыть в adobe reader (именно в нем - корп. стандарт) pdf-ку и выпустить её на печать. Сделать всё это хочу через COM. Думал, быстро нарою в сети все свойства и методы объекта, но что-то ничего нет. Хотя странно, это же самая распространенная читалка ПДФ.
В общем сначала сделал так:

```1c
    Адоб = ПолучитьCOMОбъект("C:\1.pdf");
```

В отладчике никаких свойств у объекта нет. Методы типа print и тому подобное вызывает ошибку.
Раздобыл по ссылке http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/iac_api_referen­ce.pdf ПДФку с описанием АПИ Акробата (не ридера)
(В нем кстати стоит защита от копирования текста. Вот уж кому точно голову бы пробил, так это тем, кто такое делает на подобных документах-гайдах.)
Там пробовал список всех объектов начиная от AcroExch.App заканчивая AxAcroPDFLib.AxAcroPDF.. Все вызывает ошибку.
Нашел в инете пример через AcroPDF.PDF. Т.е.
```1c
    Адоб = ПолучитьCOMОбъект("C:\1.pdf","AcroPDF.PDF");
```

В этом случае у объекта появляется свойство Src и по вышеуказанному гайду, я понял что это может быть аналог AxAcroPDFLib.AxAcroPDF., но для ридера. Есть еще правда лишнее для этого объекта свойство messageHandler (показал отладчик), но я решил проверить, смогут ли отработать (не вызвать ошибки, что метод не существует) методы типа Print, PrintAll, PrintAllFit, которые есть у AxAcroPDFLib.AxAcroPDF.. Они, как выяснилось ошибки не вызывают. Но к сожалению, какой бы я из этих методов не использовал, эффекта ноль.
В общем завяз я. А разобраться хочется. Эта задача часть другой большей задачи и решить большую задачу можно и другим способом, но мне уже интересно с этим моментом разобраться.
Может у Readera есть отдельный гайд со своим АПИ? Но я его не нашел. Может я неправильно вызываю методы печати, но у printWithDialog вообще нет параметров и по идее он должен показать диалог печати, но я ничего не вижу.
---
Все намного проще:

```1c
    Shell = Новый COMОбъект("Shell.Application");
    Shell.ShellExecute(ИмяПечатаемогоФайла, ", ", "print", 1);
```

работать будет аналогично тому что Вы правой кнопкой мыши клацнули на файл и выбрали "Печать".
---
com объект работает только у полного акробата(не Reader)
(2) а если надо принтер другой выбрать?
---
Ну так-то он есть и он работает, раз можно по Адоб = ПолучитьCOMОбъект("C:\1.pdf","AcroPDF.PDF") получить, но видимо методов у него никаких нету.
(3) Вторым параметром можно указать принтер.
---
Все намного проще:

```1c
    Shell = Новый COMОбъект("Shell.Application");
    Shell.ShellExecute(ИмяПечатаемогоФайла, ", ", "print", 1);
```

работать будет аналогично тому что Вы правой кнопкой мыши клацнули на файл и выбрали "Печать".
---
Задача не моя, на самом деле. Решил помочь коллеге. Он изначально отказался от этого варианта, сославшись, что при печати в цикле якобы печатается только первый документ. Я перепроверил и нет. Работает. Спасибо!
---
Официально, Acrobat Reader, в том числе, DC, в отличие от "полного" Acrobat, не предоставляет функциональность COM. На самом деле, AcroPDF, появляющийся при установке Acrobat Reader DC, позволяет управлять просмотром средствами AxAcroPDFLib.AxAcroPDF. Имя COM-объекта AcroPDF.PDF.
Добрый день. В документе РеализацияТоваровИУслуг нужно установить кнопку, при нажатии которой заполнится цена номенклатуры.
Ниже есть пример, который работает. Но нужно другим способом сделать. Подскажите пожалуйста

```1c
    &НаКлиенте
    Процедура Команда1(Команда)
    Для Каждого Строка ИЗ Объект.Товар Цикл
    Строка.Цена= Команда1НаСервере(Строка.Номенклатура);
    КонецЦикла;

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

    &НаСервере
    Функция Команда1НаСервере(Номенклатура)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЦеныНоменклатурыСрезПоследних.Цена,
    | ЦеныНоменклатурыСрезПоследних.Номенклатура
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныНоменклатурыСрезПоследних
    |ГДЕ
    | ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";

    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

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

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

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    Возврат ВыборкаДетальныеЗаписи.Цена;
    Иначе
    Возврат 0;
    КонецЕсли;

    КонецФункции
```
---
приложил обработку. Это так, на вскидку. На ERP работает
Только вам нужно понимать, что цены номенклатуры могут быть разных видов.
---
, Но нужно другим способом сделать.
А конкретнее?)

По текущему коду.

1. Сделай метод не &НаСервере, а &НаСервереБезКонтекста
2. Передавай не одну номенклатуру, а массив со всеми уникальными номенклатурами ТЧ
3. Возвращай из метода соответствие, где Ключ - Номенклатура, а Значение - Цена. Поиск по соответствию работает быстрее всего.
4. Назови нормально метод, а не это вот всё )
---
По текущему коду, для каждой строки делается запрос. А нужно получить цену один раз в запросе и после в цикле поставить цены.
1. Сделал
2. Как правильно передать, подскажите
3. Возврат ВыборкаДетальныеЗаписи.Номенклатура=ВыборкаДетальныеЗаписи.Цена; Правильно?
---
приложил обработку. Это так, на вскидку. На ERP работает
Только вам нужно понимать, что цены номенклатуры могут быть разных видов.
---
Спасибо огромное!
Приветствую, Форумчане!
1с.8.3.12, БСП, самопис, УФ

В документе "Заказ" есть общая команда "Присоединенные файлы". Использует БСП немного доработана и переделана.
При нажатии открывает общую форму "Присоединенная файлы". Всё присоеденение срабатывает, претензий нет, но когда после присединения переходим обратно на открытую форму "Заказ", и пытаемся дальше работать с заказом, то выходит сообщение "Данные были изменены или удалены пользователем".
Соответсвенно нельзя внес ти никаких изменений, нужно либо перезайти в документ, либо перечитать данные, что не совсем корректно и неудобно.

Понимаю, что при присоединеннии где-то происходит запись владельца присоединенного файла Заказа.

Никак не могу отследить где происходит запись этого документа в этой многоходовке при присоединеннии файла (открытие окна выбора файла, запись на том и т.д.).
Узнал, что после присоединения файла происходит запись документа, т.к. срабатывает процедурв "ПередЗаписью" модуля объекта документа "Заказ"

Подскажите как можно отловить где происходит запись владельца присоединенного файла. Запускал отдачик, всё перевернул, но никак не смог словить этот момент записи документа.
Или посоветуйте как можно обойти эту ситуацию, чтобы документ стал редактируемым...
---
Когда отладчик дойдет до Вашей точки останова в обработчике "ПередЗаписью" заказа, попробуйте взглянуть на стек вызовов (Ctrl+Alt+C).
---
Когда отладчик дойдет до Вашей точки останова в обработчике "ПередЗаписью" заказа, попробуйте взглянуть на стек вызовов (Ctrl+Alt+C).
---
Благодарю, кажысь нашел...
Здравствуйте у меня есть Таблица значений и его нужно добавить в Табличную Часть но почему то все созданное строки появляются но выходит пустыми подскажите как исправить?
---
Нужно использовать следующую конструкцию:

```1c
    &НаСервере
    Процедура ТабличнаяЧасть1ПриНачалеРедактированияНаСервере()
    ТекОбъект = РеквизитФормыВЗначение("Объект");
    //Здесь пишешь все что у тебя
    ТекОбъект.ТабличнаяЧасть1.Загрузить(ТабВКоде);
    ЗначениеВРеквизитФормы(ТекОбъект, "Объект");
    КонецПроцедуры
```
---
Потому что таблица формы у пользователя на клиенте, а вы пытаетесь менять ее на сервере.
---
Нужно использовать следующую конструкцию:

```1c
    &НаСервере
    Процедура ТабличнаяЧасть1ПриНачалеРедактированияНаСервере()
    ТекОбъект = РеквизитФормыВЗначение("Объект");
    //Здесь пишешь все что у тебя
    ТекОбъект.ТабличнаяЧасть1.Загрузить(ТабВКоде);
    ЗначениеВРеквизитФормы(ТекОбъект, "Объект");
    КонецПроцедуры
```
---
Лучше не делайте в этом методе серверные вызовы.

Выделил жёлтым пункт из справки

Это может привести к неожиданным последствиям. Вплоть до падения сеанса у пользователя. Инфа про это периодически вылазит. Но на всякий случай скоро выложу по этому поводу статью.

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

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

Представление в ЖР:

```1c
    06.05.2020 13:34:39
    Работник 106
    Обработка очереди заданий
    Ошибка обработки задания :

    СообщениеПользователю
    СообщениеПользователю
    СообщениеПользователю
    СообщениеПользователю
    СообщениеПользователю
    СообщениеПользователю
    {Документ.ЭтапПроизводства2_2.МодульМенеджера(3641)}: ВызватьИсключение СтрСоединить(ПолучитьСообщенияПользователю(Истина), Символы.ПС);
    {(1)}:Документы.ЭтапПроизводства2_2.ОбработатьДокументОтложенно(Параметры[0],Параметры[1])
    {ОбщийМодуль.ОбщегоНазначения.Модуль(4861)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
```

Где мой косяк в коде? Буду благодарен
---
Косяк здесь

```1c
    СтрСоединить(ПолучитьСообщенияПользователю(Истина), Символы.ПС);
```

Дело в том, что метод ПолучитьСообщенияПользователю(Истина) возвращает массив не со строками, а с объектами "СообщениеПользователю"

Необходимо делать так:

```1c
    ВыводимыеСообщения = Новый Массив
    Для каждого ТекущееСообщение Из ПолучитьСообщенияПользователю(Истина) Цикл
    ВыводимыеСообщения.Добавить(ТекущееСообщение.Текст);
    КонецЦикла;

    ВызватьИсключение СтрСоединить(ВыводимыеСообщения, Символы.ПС);
```
---
Косяк здесь

```1c
    СтрСоединить(ПолучитьСообщенияПользователю(Истина), Символы.ПС);
```

Дело в том, что метод ПолучитьСообщенияПользователю(Истина) возвращает массив не со строками, а с объектами "СообщениеПользователю"

Необходимо делать так:

```1c
    ВыводимыеСообщения = Новый Массив
    Для каждого ТекущееСообщение Из ПолучитьСообщенияПользователю(Истина) Цикл
    ВыводимыеСообщения.Добавить(ТекущееСообщение.Текст);
    КонецЦикла;

    ВызватьИсключение СтрСоединить(ВыводимыеСообщения, Символы.ПС);
```
---
Благодарю вас, товарищ!
Формирую простой отчет по таблице ЗаказыПокупателей.
Добавил вычисляемое поле, которое должно в одну ячейку вывести всю номенклатуру заказа, получаю ошибку

```1c
    ВычислитьВыражениеСГруппировкойМассив("Номенклатура", "Номенклатура")
```

Ошибка при получении информации о поле
по причине:
Поле не найдено "Номенклатура.ПолеУпорядочивания"

Платформа 8.3.11.3133. На Платформе 8.2.19.130 такого не было
---
Решилось вот так, в пользовательском поле в выражении пишем:

```1c
    ВычислитьВыражениеСГруппировкойМассив("Номенклатура.Наименование", "Номенклатура")
```
---
Решилось вот так, в пользовательском поле в выражении пишем:

```1c
    ВычислитьВыражениеСГруппировкойМассив("Номенклатура.Наименование", "Номенклатура")
```
---
Можно еще так
ВычислитьВыражениеСГруппировкойМассив("Представление(Исполнитель)", "Исполнитель")
Писалось для 1С:Документооборот
Как можно просуммировать по детальным записям? Выделил на скриншоте. В СКД в детальных записях

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

Тогда - точно, ничего не разберём.
---
Выделил на скриншоте.
непонятно по какому принципу вы выделили эти три ячейки
---
Филиал, Канал, номенклатура, Характеристика
---
добавьте графу (ресурс) - где будете получать значения с нужными условиями
И (после этого) - итог, по этой (добавленной) графе.
---
ну так сделайте иерархию в отчете, ресурсы просуммируются
---
ему ещё - условие надо добавить.
(непросто иерархия, нужна)
---
(4) Филиал, Канал, номенклатура, Характеристикамне всёоавно - яснее не стало.
Абсолютно.

Автор из тех - из кого надо выжимать, каждое слово и действие.
(мясорубкой - сразу)

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

Так я и говорю (вариант поиска) -

Поставить все галки и посмотреть - где появится.

что/где непонятно я сказал?
---
(по сути (повторюсь) - подозреваю, со всеми галками - нигде не появится жирного шрифта.
---
В УО, макетах СКД, мекете компоновщика.
в детали вникать лень - все три варианта работают.
---
Так и не понял как сделать это в настройках.
Сделал так:
1. отключил общие итоги (в допнастройках)
2. добавил пользовательское поле - равное ресурсу
3. добавил колонку - детальные записи, где указал показатель - не автополе, а новое пользовательское поле
4. в УО по всему отчету задал шрифт для пользовательского поля жирный
---
У таблицы общий итог это итог по колонке. Как не крутись, УО применяется только к вертикальному итогу. Поэтому свой итог сделать - правильное решение
---
возможно даже - не только правильное, а просто - единственное.

Помнится тоже - перебирал всякие варианты с УО в таблице....
Долго перебирал....
Поле добавить (со своим железным оформлением) - единственный вариант нашёл, тоже.
Добрый день,

Есть простой запрос:

```1c
    ВЫБРАТЬ *
    ИЗ
    РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор , , ) КАК ВзаиморасчетыСПодотчетнымиЛицамиОстаткиИОбороты
```

Параметры указываю за текущий месяц (Где то 30-40 документов)

Но в запросе тянутся документы с 2010 года и по текущий день... Как такое может быть ? УТ 10
---
исправил на
```1c
    ВЫБРАТЬ *
    ИЗ
    РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор ,ДВИЖЕНИЯ , ) КАК ВзаиморасчетыСПодотчетнымиЛицамиОстаткиИОбороты
```
 и все ровно стало
---
не установили значения параметров ДатаНач и ДатаКон
---
(3)
Будь всё так просто, я бы и сам разобрался
---
в запросе тянутся документы с 2010 года и по текущий день... Как такое может быть ? УТ 10
Если сами движения - отбираются верно (за нужный период), а документы (в этих движениях) - старые.

Значит - старые документы, сделали эти движения.

Что непонятного?
---
Нет, похоже на какой то глюк, если дополнить "Движения" то то выводит то что нужно, без него тянутся все записи даже те которые без регистратора...
---
если глюк - сочувствую.

Покаже вижу одно (однозначное) -

Вы не можете показать (даже) все условия.
---
```1c
    ВЫБРАТЬ *
    ИЗ
    РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор , , ) КАК ВзаиморасчетыСПодотчетнымиЛицамиОстаткиИОбороты
```

 вот все условия, этого недостаточно ?
---
исправил на
```1c
    ВЫБРАТЬ *
    ИЗ
    РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор ,ДВИЖЕНИЯ , ) КАК ВзаиморасчетыСПодотчетнымиЛицамиОстаткиИОбороты
```
 и все ровно стало
---
ВЫБРАТЬ *
ИЗ
    РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор ,ДВИЖЕНИЯ , ) КАК ВзаиморасчетыСПодотчетнымиЛицамиОстаткиИОбороты
получается - по-умолчанию, гдето/чтото не то.
ок
Студент извиняюсь заранее. Вопрос такой: Допустим есть запрос, в цикле перезаписываю документы, либо если их нет создаю. А вот если документ существует но помечен на удаление как мне его в цикле пропустить?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ОтчетОРозничныхПродажахТовары.Ссылка,
    | ОтчетОРозничныхПродажахТовары.Ссылка.Дата,
    | ВЫБОР
    | КОГДА ПриходныйКассовыйОрдер.Ссылка ЕСТЬ NULL
    | ТОГДА ИСТИНА
    | ИНАЧЕ ЛОЖЬ
    | КОНЕЦ КАК ПроведенныеПКО,
    | ОтчетОРозничныхПродажахТовары.Субконто
    |ИЗ
    | Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
    | ПО ОтчетОРозничныхПродажахТовары.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование
    |ГДЕ
    | ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    РезультатЗапроса = Запрос.Выполнить();

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

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

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

```1c
    Если ЕстьПКО.ПометкаУдаления = Истина Тогда
    Продолжить;
    КонецЕсли;
```
---
Перед
```1c
    СуществующийДокумент = ЕстьПКО.ПолучитьОбъект();
```
 добавить проверку

```1c
    Если ЕстьПКО.ПометкаУдаления = Истина Тогда
    Продолжить;
    КонецЕсли;
```
---
Запросом выбирайте только не помеченные на удаление.
---
Вы привыкли сначала создавать трудности , а потом с ними бороться?
Зачем вы выбрали ВСЕ документы, чтоб потом отбирать только непомеченые?
Запрос способен сам отобрать только непомеченые на удаление.
При вам дают советы в вашем же духе...
Только усугубляя тот бред , который вы программируете!