Имя: Пароль:
1C
1С v8
Вопрос о Загрузка данных из табличного документа
,
0 KazSever
 
12.10.16
14:47
Добрый день, ситуация такая - нужно сообщить о не найденной номенклатуре.
Кто может подсказать как это сделать?

    РезПоиска = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки);
    Если РезПоиска = Справочники.Номенклатура.ПустаяСсылка() Тогда
        Сообщить("Объект не найден: """ + ТекстЯчейки +"""");
    Иначе
        Сообщить("Объект найден " + РезПоиска);
    КонецЕсли;
        Результат = РезПоиска;
Данный код хоть и выдает сообщения нашел/не нашел но при этом ни каких изменений не делает с номенклатурой, хот стоит настройка, что если находит, то устанавливать ИСТИНА,но такое не происходит...
1 DrShad
 
12.10.16
14:52
а Результат это что? может типы не совпадают?
2 KazSever
 
12.10.16
14:53
(1) есть такое подозрение, но гугл не помог найти ответ
3 KazSever
 
12.10.16
14:54
(1) пробовал ПолучитьОбъект - вообще выдавало ошибку метаданных
4 DrShad
 
12.10.16
14:55
и все таки что есть Результат?
5 KazSever
 
12.10.16
14:57
В тексте выражения можно использовать следующие предопределенные параметры:
   Результат      - результат вычисления (на входе - значение по умолчанию)
   ТекстЯчейки    - текст текущей ячейки
   ТекстыЯчеек    - массив текстов ячеек строки
   ТекущиеДанные  - структура загруженных значений
   ОписаниеОшибки - описание ошибки, выводимое в примечание ячейки и в окно сообщений
Встроенные функции, функции общих модулей.
6 DrShad
 
12.10.16
14:58
а я то все голову ломаю к чему тут Загрузка данных из ТД
7 DrShad
 
12.10.16
14:59
теперь бы контекст выполнения кода из (0)
8 KazSever
 
12.10.16
15:00
согласен, это обработка
9 KazSever
 
12.10.16
15:01
(7) не совсем понял
10 DrShad
 
12.10.16
15:09
(9) код полностью твой?
11 KazSever
 
12.10.16
15:11
это весь код (0)
12 DrShad
 
12.10.16
15:15
(11) ок, для какого реквизита справочника используется данный алгоритм?
13 KazSever
 
12.10.16
15:23
Вообще у нас свой реквизит, не из типовой конфы, тип булево
14 DrShad
 
12.10.16
15:28
(13) и ты для Булево присваиваешь ссылку и возмущаешься что Результат не отображается?
15 KazSever
 
12.10.16
15:31
хм...
мысль понял, попробую сейчас
16 KazSever
 
12.10.16
15:35
хотя нет, это ведь поиск, а присваивание идет отдельно, в своем параметре.
Если изменить режим загрузки у "Наименование" на "Искать", то все отрабатывает на ура, только не выдает какую номенклатуру не удалось найти
17 DrShad
 
12.10.16
15:37
что-то ты делаешь не так
18 KazSever
 
12.10.16
15:38
определенно...
19 DrShad
 
12.10.16
15:40
обычно те строки в которых нет найденных ссылок подсвечены примечанием или наоборот уже не помню
20 KazSever
 
12.10.16
15:43
увы такого нет (19)
21 Михаил Козлов
 
12.10.16
16:14
(20) На кнопку "Контроль заполнения" жали?
22 Has
 
12.10.16
16:19
РезПоиска = Справочники.Номенклатура.НайтиПоНаименованию(ТекстЯчейки);
...
Результат = РезПоиска;

я так и не понял как после (11) и (13) следует (16)
23 T3Mka
 
12.10.16
16:56
(22) это фетишь
24 KazSever
 
12.10.16
18:00
(23) Конечно, каждый мыслит в меру своей испорченности...
25 KazSever
 
12.10.16
18:01
(21) На кнопку контроль нажимал - происходит вывод сообщений согласно условию в (0), никаких примечаний и красных черточек нет.
26 KazSever
 
12.10.16
18:05
Вот ссылка на скриншот
https://drive.google.com/open?id=0B6JiLTBC0aMgNWdXRXJhX2c0bFU
27 KazSever
 
12.10.16
18:06
(26) Скриншот обработки "агрузка данных из табличного документа"
28 KazSever
 
12.10.16
18:09
Вот так выглядит после нажатия кнопки "Контроль заполнения"
https://drive.google.com/open?id=0B6JiLTBC0aMgYWE3RlN0QkJ6S0k
29 Михаил Козлов
 
12.10.16
18:54
(26) А почему не просто искать по наименованию?
30 KazSever
 
12.10.16
18:59
(29) Если просто искать, то в служебных сообщениях появляются записи, которые были изменены (т.е. найдены в базе), но нужно знать и те позиции, которые не удалось найти.
31 KazSever
 
13.10.16
06:30
Похоже, что решение только такое
https://drive.google.com/open?id=0B6JiLTBC0aMgd3FTWE96RExXblU
32 MaxS
 
13.10.16
07:15
Допустим загружается 50 тысяч позиций номенклатуры.
Какой смысл будет от 50 тыс строк, сформированных командой "Сообщить"?
И традиционная проблема - запрос в цикле.
33 KazSever
 
13.10.16
09:51
(32)  я готов рассматривать все варианты