arefaste/1C_Forums huggingface dataset:
Всем доброго вечера! Обратился клиент с просьбой провести аудит всех доработок, сделанных в его базе. В базе 40+ расширений, куча некорректного и нерабочего кода. Подскажите, можно ли как-то находить в каждом расширении код, не протыкивая каждый документ отдельно и не залезая во все модули, и можно ли находить все не заимствованные реквизиты? Заранее спасибо!
---
Автоматизации точно пока не существует. Я бы начал с установки фильтра, чтобы в каждом расширении были видны только реально задействованные объекты. Затем выделить расширения по типам доков (например, Реализация). И попытаться разобраться для чего каждое расширение и по возможности сводить в более крупные расширения
---
ну, собственно аудит проведен - в базе 40+ расширений и куча нерабочего кода. Заказчика это не устраивает?
---
Заказчик хочет аудит всего, что добавлено в базу. Ответ "Тут дерьмовый код, нужно удалять всё" не подойдёт, к сожалению(
---
Гм. Ну, то есть, как проводить аудит не знаем, как обходить расширения неизвестно, но в базе уже куча некорректного и нерабочего кода. Прелестно.

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

```1c
    Процедура Расш2_ТоварыНоменклатураПриИзмененииПеред(Элемент)
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
```

Там уже будет лежать новая номенклатура. Как это обойти?
---
Сохранить в реквизите формы в обработчике события ПриНачалеРедактирования.
Например:

```1c
    &НаКлиенте
    Процедура ПланПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Стр=Элемент.ТекущиеДанные;
    Если НоваяСтрока Тогда
    ДатаНачДо='00010101';
    ДатаКонДо='00010101';
    Иначе
    ДатаНачДо=Стр.ДатаНачала;
    ДатаКонДо=Стр.ДатаОкончания;
    КонецЕсли;
    КонецПроцедуры
```
---
ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка), не?
---
Ловите/Обрабатывайте событие ПриАктивизацииСтроки

в нем записывайте/запоминайте старую номенклатуру, затем после изменения используйте ее в сравнении
---
Сохранить в реквизите формы в обработчике события ПриНачалеРедактирования.
Например:

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

```1c
    Неверное имя колонки
    {Документ.ДанныеДляРасчетаЗарплаты.МодульМенеджера(157)}:КомандыПечати.Колонки.Добавить("ИмяКомандыНаФорме", Новый ОписаниеТипов("Строка"));
    {Документ.ДанныеДляРасчетаЗарплаты.Форма.ФормаДокумента.Форма(52)}:Документы.ДанныеДляРасчетаЗарплаты.ПриСозданииНаСервере(ЭтаФорма, КомандыПечати);

    по причине:
    Неверное имя колонки
```

Через отладчик увил, что ломается в процедуре ПриСозданииНаСервере на сроках:

```1c
    КомандыПечати = Документы.ДанныеДляРасчетаЗарплаты.КомандыПечатиФормы(ЭтаФорма);
    Если КомандыПечати.Количество() > 0 Тогда
    Документы.ДанныеДляРасчетаЗарплаты.ПриСозданииНаСервере(ЭтаФорма, КомандыПечати);
    КонецЕсли;
```

С чем это связано?
---
Решил вопрос так:

Закомментировал

```1c
    КомандыПечати = Документы.ДанныеДляРасчетаЗарплаты.КомандыПечатиФормы(ЭтаФорма);
    Если КомандыПечати.Количество() > 0 Тогда
    Документы.ДанныеДляРасчетаЗарплаты.ПриСозданииНаСервере(ЭтаФорма, КомандыПечати);
    КонецЕсли;
```

и добавил

```1c
    // Обработчик подсистемы "Дополнительные отчеты и обработки".
    ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
    // Обработчик подсистемы "ВерсионированиеОбъектов".
    ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
    // Обработчик подсистемы "Печать".
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма);
```
---
Решил вопрос так:

Закомментировал

```1c
    КомандыПечати = Документы.ДанныеДляРасчетаЗарплаты.КомандыПечатиФормы(ЭтаФорма);
    Если КомандыПечати.Количество() > 0 Тогда
    Документы.ДанныеДляРасчетаЗарплаты.ПриСозданииНаСервере(ЭтаФорма, КомандыПечати);
    КонецЕсли;
```

и добавил

```1c
    // Обработчик подсистемы "Дополнительные отчеты и обработки".
    ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтаФорма);
    // Обработчик подсистемы "ВерсионированиеОбъектов".
    ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
    // Обработчик подсистемы "Печать".
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма);
```
Здравствуйте! Помогите найти отчет в конфигурации. Его нужно доработать, а я его не могу найти в конфе))) Есть Управление торговлей 11.4.14.148. Меню CRM и маркетинг -> Отчеты по CRM и маркетингу. Или вообще как искать в УТ? Это внешний или типовой
---
В колонке Вариант справочника указано имя под которым этот отчет в конфигураторе (если это встроенный отчет)
---
Добрый день.
В демо-базе УТ такого отчет нет.
Судя по названию можно предположить, что это может быть отчет валовая прибыль.
Либо у него изменено наименование и выполнена индивидуальная настройка, либо это доработанный отчет.
---
Добрый, да вроде не типовой..а вот как найти его не знаю. Не работала с УТ
---
Посмотрите в Дополнительных отчетах и обработках (НСИ и администрирование - Печатные формы, отчеты и обработки), обычно отчету добавляются как внешняя форма.
---
А вам же в конфигурации надо найти, а я вам написала решение через предприятие.
---
Его там нет по такому названию(
---
Через функции для тех специалиста посмотри справочник Пользовательские настройки отчетов. Возможно это вариант стандартного отчета. Найдешь по наименованию своего отчета, а Вариант - это имя основного отчета в конфигураторе
---
да спасибо, он там есть, а вот где он лежит не понятно и какой отчет. Он там открвыет только вариант отчета и потом можно выгрузить настройки
---
В колонке Вариант справочника указано имя под которым этот отчет в конфигураторе (если это встроенный отчет)
Текст запроса:

```1c
    ВЫБРАТЬ
    ПриобретениеТоваровУслуг.Ссылка КАК Ссылка
    ПОМЕСТИТЬ ДокПриобретение
    ИЗ
    Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
    ГДЕ
    ПриобретениеТоваровУслуг.ЗаказПоставщику = &ЗаказПоставщику
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СебестоимостьТоваров.ДопРасходыУпр КАК ДопРасходыУпр,
    СебестоимостьТоваров.Партия КАК Партия
    ИЗ
    РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
    ГДЕ
    СебестоимостьТоваров.Партия В ("Выбрать Т.Ссылка Из ДокПриобретение КАК Т")
```

Результат запроса пустой. Измерение партия имеет тип ОпределяемыйТип. Такие записи есть в регистре накопления.
Понимаю что условие написано неправильно, но как правильно написать такое условие в интернете описания не нашёл.
Подскажите пожалуйста как правильно написать условие?
---
У вас кавычки в условии не лишние?
---
У вас кавычки в условии не лишние?
Здравствуйте.

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

Тест выполнялся в 1С 8.3.14. Пробовал в 1С 8.3.22 - результат тот же.
На предыдущих версиях 1С такой баг замечен не был.
Для демонстрации в модуле формы теста указаны два урлика: один срабатывает правильно, второй - криво.

Буду весьма благодарен, если кто-нибудь проведет тестирование у себя и сообщит мне о результате. Может быть, это у меня одного такая складывается ситуация?

Просмотрел темы форума по полю HTML документа, поиграл безопасностью в настройках браузера IE - ничего не получилось. Перехватывать тело документа и вырезать скрипты(?) - не хотелось бы.

Пожалуйста, если кто-либо сталкивался с похожей ситуацией - ответьте...
---
Решение найдено:
https://infostart.ru/1c/articles/1816603/
---
это из-за webkit движка. Как раз начиная в 8.3.14 стал применяться.
https://forum.infostart.ru/forum9/topic236694/
---
Спасибо за ответ. Грустно думать, что проблема эта решения не имеет. После выпуска почти 10 новых версий 1С-платформы. Понятное дело, что разработчикам платформы дела нет до таких мелочей. Всегда есть дела поважнее. И что с того, что многие сайты загружаются криво в поле HTML, когда с их (1С) сайтами таких проблем я не приметил. :)

И все-таки.... меня сейчас интересует простой вопрос: это у всех так? Мой тест, прикрепленный к теме, что показывает? Надеюсь, найдутся добрые люди, которые его запустят и напишут ответ.
Тогда и думать буду, как обойти возникшее недоразумение.
---
8.3.22.1750
Все так.
---
Спасибо. Буду думать, как дальше жить...
---
Решение найдено:
https://infostart.ru/1c/articles/1816603/
Делаю свои резервы, в самом документе все просто, добавил обработчик команды перед и сделал свою проверку, не могу найти способ для формы списка, где искать код?
---
в модуле объекта, вестимо.
---
в модуле объекта, вестимо.
---
Вы уверены, что изменение логики формирования движений при помощи расширения не приведет в последствии к ошибкам?
---
в моем случае да, я просто пишу предупреждение что товара в пути(заказ поставщику есть, поступления нет) не достаточно и запрещаю проведение.
---
Стандартная команда Провести не работает с формой, а только с содержанием объектом. Поэтому, как выше подсказали подобные проверки нужно делать в модуле объекта, в процедуре ОбработкаПроведения или ОбработкаПроверкиЗаполнения
---
```1c
    &Перед("ОбработкаПроведения")
    Процедура Расш2_ОбработкаПроведения(Отказ, РежимПроведения)
    Если ЭтотОбъект.Проведен Тогда
```

Всегда выдает что проведен, не понимаю, вызываю же перед.
---
```1c
    ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
    .....

    КонецПроцедуры
```
---
Если РежимЗаписи = РежимЗаписиДокумента.Проведение
Что именно делает эта проверка? Если именно то как она и называется, то не подходит, мне нужна проверка того был ли документ уже проведен или нет.
---
В обработке проведения документ уже записан с Проведен = Истина.
---
Как в таком случае сделать проверку? Извиняюсь если это глупый вопрос, в первый раз с этим сталкиваюсь.
---
в ПередЗаписью
---
А там уже

```1c
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение
```

Спасибо всем кто помог.
Коллеги, что-то мне не удается ни самому сообразить, ни нагуглить.

Как программно определить что текущий сеанс запущен в режиме менеджера тестирования?

В зависимости от результата предполагается либо запускать новый сеанс с ключем /testmanager, либо открывать фреймворк тестирования в текущем сеансе.
---
Отвечу сам себе. На случай, если кому-то еще такое понадобится.

Нашел простой способ.

По информации из справки, объект ТестируемоеПриложение, предназначенный для связи с сеансом клиента тестирования, существует только в сеансе менеджера тестирования:

ТестируемоеПриложение (TestedApplication)
...
Объект доступен если исполняющее код приложение запущено с ключом командной строки /TESTMANAGER.

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

Примерно таким образом:

```1c
    &НаКлиенте
    Функция ЭтоМенеджерТестирования()

    Результат = Неопределено;

    Попытка
    ИмяТипа = "ТестируемоеПриложение";
    Результат = Тип(ИмяТипа);
    //или
    //Результат = Вычислить("Тип("ТестируемоеПриложение")");
    //или
    //Результат = Вычислить("Новый ТестируемоеПриложение()");
    Исключение
    КонецПопытки;

    Возврат Результат <> Неопределено;

    КонецФункции
```
---
Отвечу сам себе. На случай, если кому-то еще такое понадобится.

Нашел простой способ.

По информации из справки, объект ТестируемоеПриложение, предназначенный для связи с сеансом клиента тестирования, существует только в сеансе менеджера тестирования:

ТестируемоеПриложение (TestedApplication)
...
Объект доступен если исполняющее код приложение запущено с ключом командной строки /TESTMANAGER.

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

Примерно таким образом:

```1c
    &НаКлиенте
    Функция ЭтоМенеджерТестирования()

    Результат = Неопределено;

    Попытка
    ИмяТипа = "ТестируемоеПриложение";
    Результат = Тип(ИмяТипа);
    //или
    //Результат = Вычислить("Тип("ТестируемоеПриложение")");
    //или
    //Результат = Вычислить("Новый ТестируемоеПриложение()");
    Исключение
    КонецПопытки;

    Возврат Результат <> Неопределено;

    КонецФункции
```
Всем привет, УПП

какую операцию нужно сделать, чтобы при сторно поступления допрасходов делалась проводка по мунусу 19.03?

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

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

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

```1c
    ТекстЗапроса = "ВЫБРАТЬ
    | Дата,
    | Контрагент
    |ИЗ
    | Документ.РасходнаяНакладная";

    ТекстЗапроса = "ВЫБРАТЬ
    | РасходнаяНакладная.Дата КАК Дата,
    | РасходнаяНакладная.Контрагент КАК Контрагент
    |ИЗ
    | Документ.РасходнаяНакладная КАК РасходнаяНакладная";
```
---
Как правило, если возникает такой вопрос, то никакой, даже самый академический, ответ не устроит. А так, поддержу (3) – во встроенной справке всё есть.
---
Вариант ответа из встроенной справки платформы недостаточно умен и академичен?
---
Сообщение было скрыто модератором.
---
Как правило, если возникает такой вопрос, то никакой, даже самый академический, ответ не устроит. А так, поддержу (3) – во встроенной справке всё есть.
---
Огромное спасибо!
Согласен - туплю.
---
Похожая тема https://forum.infostart.ru/forum9/topic190263/ Хотя там претензия именно к слову КАК, а не к самому псевдониму.
Добрый день, горячие головы!

Задумался реализовать отправку уведомлений по СМС из 1С, например, в случае не создания резервной копии базы. Как это сделать наипростейшим образом? Есть ли подобные решения? Предполагается, что конфигурация будет с нуля.
---
Может лучше не СМС, а в мессенеджеры? Будет проще и бесплатно.

А так
1. Находите сервис рассылок SMS с нормальным API, реализуете вызов API - Profit
2. Пишете мобильное приложение, в котором реализуете отправку SMS средствами телефона по некоторому событию с сервера - Profit
3. Что-то такое https://habr.com/ru/company/ruvds/blog/554868/ - Profit
---
Наипростейшим способом взять БСП
---
Проще всего на электронную почту так же из БСП
---
Про мессенджеры полностью согласен с laperuz: туда всякое можно прикручивать вплоть до диалога с 1С.
---
Проще всего на электронную почту так же из БСП
---
Может быть и проще, вот только зачем неудобно читать почту с мобильника когда есть интерфейс месенджеров, который заточен под мобильные устройства?
---
из 1С, например, в случае не создания резервной копии базы Начинать надо с того, что "из 1С" резервные копии не создаются!

Убедившихся в этом можно найти прямо тут.
---
Если присмотреться, то речь идет об СМС из 1С:

"отправку уведомлений по СМС из 1С, например, в случае не создания резервной копии базы"
---
Может лучше не СМС, а в мессенеджеры? Будет проще и бесплатно.

А так
1. Находите сервис рассылок SMS с нормальным API, реализуете вызов API - Profit
2. Пишете мобильное приложение, в котором реализуете отправку SMS средствами телефона по некоторому событию с сервера - Profit
3. Что-то такое https://habr.com/ru/company/ruvds/blog/554868/ - Profit
---
Наипростейшим способом взять БСП
---
лет 6 назад работала у меня рассылка с новыми заявками для инженеров. Был подключен тариф корпоративный с пакетом 3000 смс. Работало через модем E1550 и программу gammu. Выходило сильно дешевле, чем через операторов отправки смс. Там просто надо было текстовый файлик сохранить в папку которую gammu мониторил. Работало стабильно. Бывали правда затыки раз в полгода, когда от оператора кривые смски приходили. Приходилось чистить смс в памяти модема. Кто-то скажет изврат, но смски формировались скриптом на php и ничего лучшего на тот момент я не придумал. Если где-то валяется модем старинный, то как вариант...
Добрый день, подскажите ,пожалуйста, есть ли в ЗУП 3.1 возможность настройки ограничения выплаты Премии на испытательном сроке. Чтобы сотрудники , находящиеся на испытательном сроке не попадали в документ Премия?.
---
Вообще-то это противоречит трудовому кодексу, если эта ваша премия ежемесячная и оговорена в трудовом договоре. В остальных случаях регулируется документами назначения плановых начислений по соответствующим датам начала и окончания. Испытательный срок не имеет никакого значения, работники на испытательном сроке не должны быть дискриминированы по сравнению с другими, поэтому такой настройки быть не может.
---
спасибо.
---
Вообще-то это противоречит трудовому кодексу, если эта ваша премия ежемесячная и оговорена в трудовом договоре. В остальных случаях регулируется документами назначения плановых начислений по соответствующим датам начала и окончания. Испытательный срок не имеет никакого значения, работники на испытательном сроке не должны быть дискриминированы по сравнению с другими, поэтому такой настройки быть не может.
---
спасибо.
```1c
    Результат=ЭлементыФормы.ПоискПоШтрих.Значение;

    Если Не ПустаяСтрока(Результат) Тогда
    ТЗ = Товары.ВыгрузитьКолонку("Штрихкод");
    Штрих = ТЗ.Найти(Результат);

    Если Не Штрих = Неопределено Тогда
    РежимД = РежимДиалогаВопрос.ДаНет;
    Ответ = Вопрос("Метраж совпадает?", РежимД, 0);
    Если Ответ = КодВозвратаДиалога.Да Тогда

    ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;
```

Подскажите уважаемые, надо найти значение введенное в --- Результат=ЭлементыФормы.ПоискПоШтрих.Значение;
в таблице Товары.
---
Если кому надо будет, вопрос решил следующим кодом.

```1c
    ОчиститьДанныеВвода();

    Результат = ЭлементыФормы.ПоискПоШтрих.Значение;
    ОчиститьДанныеВвода();

    Если Не ПустаяСтрока(Результат) Тогда

    Отбор = Новый Структура;
    Отбор.Вставить("Штрихкод", Результат);

    СтрокаТабЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(Товары, Отбор);
    мСтрокаТабЧасти = СтрокаТабЧасти;
    Если СтрокаТабЧасти <> Неопределено Тогда

    РежимД = РежимДиалогаВопрос.ДаНет;
    Ответ = Вопрос("Штрих: "+СтрокаТабЧасти.Штрихкод+" Метраж: "+СтрокаТабЧасти.Метраж, РежимД, 0);
    Если Ответ = КодВозвратаДиалога.Да Тогда
    СтрокаТабЧасти.Проверка = Истина;

    ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;
    Иначе
    Сообщить("Штрихкод не найден в документе!!!");
    КонецЕсли;

    КонецЕсли;
```
---
Этот код не делает поиск (
---
Сообщение было скрыто модератором.
---
А так не пробовали?

```1c
    НайденыеСтроки = Товары.НайтиСтроки(Новый Структура("Штрихкод", Результат));
    Если НайденыеСтроки.Количество() <> 0 Тогда
    Сообщить("Строка найдена");
    КонецЕсли;
```
---
Строка не найдена пишет.
---
А можно как то поменять цвет фона найденной строки?
---
Сейчас попробую.
---
```1c
    НайденыеСтроки = Товары.НайтиСтроки(Новый Структура("Штрихкод", Результат));
    Если НайденыеСтроки.Количество() <> 0 Тогда
    Сообщить("Строка найдена");
    Иначе
    Сообщить("Строка не найдена");
    КонецЕсли;
```
---
Все разобрался! Текст не правильно отображался
---
Если кому надо будет, вопрос решил следующим кодом.

```1c
    ОчиститьДанныеВвода();

    Результат = ЭлементыФормы.ПоискПоШтрих.Значение;
    ОчиститьДанныеВвода();

    Если Не ПустаяСтрока(Результат) Тогда

    Отбор = Новый Структура;
    Отбор.Вставить("Штрихкод", Результат);

    СтрокаТабЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(Товары, Отбор);
    мСтрокаТабЧасти = СтрокаТабЧасти;
    Если СтрокаТабЧасти <> Неопределено Тогда

    РежимД = РежимДиалогаВопрос.ДаНет;
    Ответ = Вопрос("Штрих: "+СтрокаТабЧасти.Штрихкод+" Метраж: "+СтрокаТабЧасти.Метраж, РежимД, 0);
    Если Ответ = КодВозвратаДиалога.Да Тогда
    СтрокаТабЧасти.Проверка = Истина;

    ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли;
    Иначе
    Сообщить("Штрихкод не найден в документе!!!");
    КонецЕсли;

    КонецЕсли;
```