|
ошибка чтения значения | ☑ | ||
---|---|---|---|---|
0
acabra
02.08.13
✎
13:40
|
С чего началась проблема: нужно было написать обработку для БП, которая бы удаляла в некоторых документах из табличных частей строчки с пустыми номенклатурами. Начала делать это запросом. Перепробовала всякие запросы вплоть до самых элементарных. Результат выполнения - ошибка чтения значения.
В ходе подозрений решила просто получить в некую док1 ссылку на документ как док1 = Документы.ТребованиеНакладная.НайтиПоНомеру("ТФ000000478"); например так. Ничегошеньки не получает. Т.е. вообще ни в каком виде не дается В чем может быть проблема? |
|||
1
Beduin
02.08.13
✎
13:41
|
Зачем вам это все?
|
|||
2
acabra
02.08.13
✎
13:43
|
Затем, что я не пойму, почему ни одно значение из данного документа не хочет получаться. Я никогда такого не видела (опыта мало), сижу верчу со всех сторон..
|
|||
3
Капитан О
02.08.13
✎
13:45
|
предлагаю лечить мигрень методом отличным от отсечения головы
|
|||
4
acabra
02.08.13
✎
13:46
|
А если без бесполезных ответов? Я сюда не за сарказмами обращалась
|
|||
5
Галахад
гуру
02.08.13
✎
13:46
|
Дата нужна.
|
|||
6
Капитан О
02.08.13
✎
13:47
|
(4) а если начать думать?
|
|||
7
Crush
02.08.13
✎
13:49
|
(4)
1. Напиши в табло Документы.ТребованиеНакладная.НайтиПоНомеру("ТФ000000478") 2. В синтаксис помощнике почитай про ф-ю НайтиПоНомеру |
|||
8
acabra
02.08.13
✎
13:50
|
Вот поверьте, от вашего "а если начать думать?" меня не озарит. Надо понимать, что если я сюда обратилась, то этого недостаточно. Не всем, видимо, как вам, знания и понимание даруются с рождения
|
|||
9
zmaximka
02.08.13
✎
13:54
|
Документы.ТребованиеНакладная.НайтиПоНомеру("ТФ000000478")
У этой функции есть еще второй параметр. Используй и его |
|||
10
zmaximka
02.08.13
✎
13:55
|
кстати, а чего фотку еще никто не попросил?
|
|||
11
Любопытная
02.08.13
✎
13:57
|
(8) Не ругайся. Жди. Сегодня Пятница. К 20му посту скажут что-нить дельное)
Показывай, что писала. |
|||
12
Crush
02.08.13
✎
14:00
|
(11) опытные люди подключились:)
|
|||
13
Серго62
02.08.13
✎
14:01
|
А у тебя вообще есть документ с таким номером? Если есть, то зайди в него и скопируй номер, а потом вставь его в своей программе в "НайтиПоНомеру". Может там пробелы в номере.
|
|||
14
acabra
02.08.13
✎
14:08
|
||||
15
acabra
02.08.13
✎
14:09
|
Серго62, именно так и делала
|
|||
16
acabra
02.08.13
✎
14:11
|
(5) ну предположим, дату я поставила в запросе как дату некоторого документа , все равно таблица значений пустая.
А если мне нужно получить абсолютно все документы? |
|||
17
Галахад
гуру
02.08.13
✎
14:12
|
Будем считать, что это (20) :-)
док1 = Документы.ТребованиеНакладная.НайтиПоНомеру("ТФ000000478", текущаядата()); |
|||
18
George Wheels
02.08.13
✎
14:14
|
(14) В этом месте ещё не выполнился метод .Следующий()
|
|||
19
acabra
02.08.13
✎
14:15
|
(17) так тоже делала. В значениях Дата, материалы в БыборкеДетальныхЗаписей стоит ошибка чтения значения. ничего не изменилось
|
|||
20
Галахад
гуру
02.08.13
✎
14:17
|
(19) Покажите код.
|
|||
21
acabra
02.08.13
✎
14:17
|
(18) а зачем нам следующий?
я отладчиком после Запрос.Выполнить().Выбрать() смотрю результат запроса. Он уже должен быть заполнен |
|||
22
Aprobator
02.08.13
✎
14:18
|
Читать внимательнро и до конца. Попытаться понять. В противном случае отойти от компа.
........ ДокументМенеджер.<Имя документа>.НайтиПоНомеру (DocumentManager.<Имя документа>.FindByNumber) ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>) НайтиПоНомеру (FindByNumber) Синтаксис: НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>) Параметры: <НомерДокумента> (обязательный) Тип: Число; Строка. Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа. <ДатаИнтервала> (необязательный) Тип: Дата. Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как ПЕРИОД УНИКАЛЬНОСТИ номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года. Параметр используется для документов с периодической нумерацией. Возвращаемое значение: Тип: ДокументСсылка.<Имя документа>; Неопределено. Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ. Если номер не задан (длина = 0), то будет возвращено Неопределено. Описание: Осуществляет поиск документа по номеру. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
23
acabra
02.08.13
✎
14:18
|
(20) код в одной из картинок. там текст запроса. смотрю на результат запроса. пустой он
|
|||
24
George Wheels
02.08.13
✎
14:20
|
(23) Выполни .Следующий() и будет тебе счастье.
|
|||
25
acabra
02.08.13
✎
14:20
|
(24) выполняла. не привалило.
|
|||
26
Crush
02.08.13
✎
14:21
|
(21) Тогда уж Запрос.Выполнить().Выгрузить()
|
|||
27
Aprobator
02.08.13
✎
14:21
|
(24) ЕСЛИ ЗАПРОС ПУСТОЙ - сЛЕДУЮЩИЙ ЧЕМ ПОМОЖЕТ ТО?
|
|||
28
Aprobator
02.08.13
✎
14:21
|
упс - соррь за капс
|
|||
29
GenAcid
02.08.13
✎
14:22
|
(21) К этому моменту даже Выгрузить() не выполнилось.
|
|||
30
hhhh
02.08.13
✎
14:22
|
(25) дата почему там бешеная какая-то задается? Нормально дату не судьба задать?
|
|||
31
Crush
02.08.13
✎
14:22
|
Не могу посмотреть. Ресурс с картиками прикрыт
|
|||
32
Aprobator
02.08.13
✎
14:23
|
|
|||
33
Галахад
гуру
02.08.13
✎
14:24
|
(23) Формат даты другой:
20020820153309 |
|||
34
Aprobator
02.08.13
✎
14:24
|
(31) там смотреть нечего.
|
|||
35
Галахад
гуру
02.08.13
✎
14:25
|
(33) Упс. вот так:
Дата('20020820153309') |
|||
36
Aprobator
02.08.13
✎
14:25
|
+(34) обычный код ленивого студента. Кстати, чо неписанные правила форума нарушаем? Фотки то нет.
|
|||
37
George Wheels
02.08.13
✎
14:26
|
(27) А где видно, что он пустой?
|
|||
38
Aprobator
02.08.13
✎
14:27
|
(37) мне хватило текст запрроса увидеть.
|
|||
39
Darky
02.08.13
✎
14:28
|
(37) из "Результат выполнения - ошибка чтения значения. "
|
|||
40
Crush
02.08.13
✎
14:28
|
Фотку в профиль!
Потом аукцион-конкурс, кто поедет переписывать запрос |
|||
41
Aprobator
02.08.13
✎
14:29
|
(39) стандартное сообщение для выборки. Там в параметр запроса передается дата с нулевым временем. Очень немногие документы попадают в 00:00:00.
|
|||
42
Aprobator
02.08.13
✎
14:30
|
+(91) и условие по дате дурное - правильное в (32).
|
|||
43
Darky
02.08.13
✎
14:31
|
(41) ага, стандартное...для пустой выборки
|
|||
44
Aprobator
02.08.13
✎
14:33
|
(43) до выполнения метода следующий (там на первой картинке видно, где остановка сделана, все вполне нормально.
|
|||
45
Darky
02.08.13
✎
14:33
|
(44) я картинки не смотрел)
|
|||
46
Aprobator
02.08.13
✎
14:34
|
(45) ах ты тролль )))
|
|||
47
Crush
02.08.13
✎
14:35
|
(42) "+(91)" новая функция Форум.ПолучитьСообщенияНаДату("02.08.13 16:33")
|
|||
48
Web00001
02.08.13
✎
14:38
|
Ошибку чтения значения в выборке, получаем, когда выборка не спозиционировалась ни на какой записи. Правильно сказали, надо делать Следующий().
(21) Да ну? Че серьезно? Просто 1С про это не в курсе. |
|||
49
Cyberhawk
02.08.13
✎
14:38
|
(49) без фото не взлетит
|
|||
50
Aprobator
02.08.13
✎
14:40
|
да ладно, чего накинулись? Даме можно скидку сделать. Хотя, учится по форумам с нуля, это надо иметь такую извращенную натуру. Садо мазо - нервно курит в сторонке.
|
|||
51
Web00001
02.08.13
✎
14:42
|
Судя по всему ТС, таки сумела написать следующий() после слова Выборка() хоть и сопротивлялась упорно.
|
|||
52
Aprobator
02.08.13
✎
14:42
|
(51) оно там написано и так. Проблема именно в условии запроса была.
|
|||
53
Aprobator
02.08.13
✎
14:46
|
(4) придется потерпеть. Ибо .... бесплатный сыр.....
|
|||
54
acabra
02.08.13
✎
15:00
|
короче!
в консоли запросов мой запрос на выбор всех документов с пустой номенклатурой работает. там я никакой даты не выбираю. передаю в параметр номенклатуру, значение параметра оставив пустым. единственный вывод, который я сделала из некоторых сообщений по делу, что каким-то образом нужно включить в дело дату. как это сделать, если мне нужны абсолютно все документы, независимо от дат? объясните на пальцах, кому не сложно. кому сложно нормально объяснить, можно и нужно пропустить тему, ибо надоели вот такое резюме. запрос кидать заново не буду. смотреть правда нечего |
|||
55
hhhh
02.08.13
✎
15:01
|
(5) если все документы нужно, то дату выкинь. Ну с чего ты взяла, что дата нужна?
|
|||
56
Галахад
гуру
02.08.13
✎
15:02
|
(54) Вывод не верный. Если нужны все документы, то условие по дате лишнее.
|
|||
57
acabra
02.08.13
✎
15:09
|
(55) (56) оооооооооооок..............
ВЫБРАТЬ ТребованиеНакладнаяМатериалы.Количество, ТребованиеНакладнаяМатериалы.СтатьяЗатрат, ТребованиеНакладнаяМатериалы.Номенклатура, ТребованиеНакладнаяМатериалы.Ссылка.Ссылка ИЗ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы ГДЕ ТребованиеНакладнаяМатериалы.Номенклатура = &ПустаяСтрока почему в консоли это работает, а в обработке нет? чего не хватает? |
|||
58
Crush
02.08.13
✎
16:00
|
Во первых: напиши так
ВЫБРАТЬ ТребованиеНакладнаяМатериалы.Количество, ТребованиеНакладнаяМатериалы.СтатьяЗатрат, ТребованиеНакладнаяМатериалы.Номенклатура, ТребованиеНакладнаяМатериалы.Ссылка.Ссылка ИЗ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы ГДЕ ТребованиеНакладнаяМатериалы.Номенклатура = Значение(Справочник.Номенклатура.ПустаяСсылка) Во вторых: Кинь код обработки и напиши цель этого кода |
|||
59
Aprobator
02.08.13
✎
16:57
|
(58) цель описана в (0) удалить строчки с пустой номенклатурой.
|
|||
60
Aprobator
02.08.13
✎
16:58
|
(57) в параметр ПустаяСтрока неправильное значение пишешь.
|
|||
61
Crush
02.08.13
✎
17:14
|
Уж солнце близилось к закату...
ВЫБРАТЬ различные тн.Ссылка Поместить вт ИЗ Документ.ТребованиеНакладная.Материалы КАК тн ГДЕ тн.Номенклатура = Значение(Справочник.Номенклатура.ПустаяСсылка); Выбрать * из Документ.ТребованиеНакладная.Материалы как тн Где Ссылка В (Выбрать Ссылка из вт) Итоги по Ссылка Рез = Запрос.Выполнить(); ВыбДок = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыбДок.Следующий() Цикл Док = ВыбДок.Ссылка.ПолучитьОбъект(); Док.Материалы.Очистить(); ВыбСтр = ВыбДок.Выбрать(); Пока ВыбСтр.Следующий() Цикл ЗаполнитьЗначенияСвойств(Док.Материалы.Добавить(), ВыбСтр); КонецЦикла; Док.Записать(); КонецЦикла; Куда отправлять пиво напишу по результатам |
|||
62
Web00001
02.08.13
✎
17:21
|
моя версия, по моему гораздо нагляднее
Запрос = Новый Запрос(
тока вот бухгалтерии под рукой нет, но мысль должна быть понятна, уж проще некуда |
|||
63
Aprobator
02.08.13
✎
18:06
|
а моя эффективнее )
|
|||
64
Aprobator
02.08.13
✎
18:06
|
а млин - не косяк страшнейший )
|
|||
65
Aprobator
02.08.13
✎
18:08
|
короче - суть в том, чтобы сразу считать только те записи в ТЧ документа, которые надо оставить. А там Итоги По Ссылка.
И .... Расписывать лениво ) |
|||
66
Crush
02.08.13
✎
18:12
|
(65) Так я именно это и написал:)
Но похоже этот новый растворитель мужского коллектива куда то слился, не отдав мне пива:) |
|||
67
Crush
02.08.13
✎
18:14
|
(62) Когда то (может еще в 77) сталкивался с удалением строк из таблицы по номеру строки по возрастанию. Сам понимаешь что за грабли:)
|
|||
68
Aprobator
02.08.13
✎
18:15
|
(67) в 7 ке даю Только с хвоста обходить. А в 8 - ке массив с ссылками на строки. Лепота.
|
|||
69
Aprobator
02.08.13
✎
18:16
|
(66) неформатированный код лениво разбирать было )
|
|||
70
Crush
02.08.13
✎
18:16
|
Можно в запросе получать номера строк, сортировать их по УБЫВАНИЮ и в цикле удалять - это самое быстрое будет, нежели искать строки по значению колонки
|
|||
71
Crush
02.08.13
✎
18:18
|
(69) Так я его с ходу писал. Конструктора запросов под рукой нет и конфы с товарной накладной тоже:)
|
|||
72
Aprobator
02.08.13
✎
18:19
|
(70) это уже извращение. Удалять , когда можно сразу запросом только нужное получить.
|
|||
73
Crush
02.08.13
✎
18:23
|
(72) это достаточно спорно-дискуссионный вопрос:)
Добавится у тебя реквизит ТЧ.. : 1. Запрос переписывать? - лень 2. В запросе оставлять *? - а если конструктор надо запустить? Лень:) 3. Формировать поля запроса по метаданным? - А если в конструктор зайти понадобится, ибо руками лень? :))) |
|||
74
Aprobator
02.08.13
✎
18:25
|
(73) не представляю, чтобы подобное пришлось ежедневно исправлять )
|
|||
75
acabra
02.08.13
✎
19:16
|
Растворитель не слился, в временно удалился, не дождетесь)
Спасибо всем, кто реально помог вместо дискриминирующего пустого трёпа. Можете тут еще поспорить, я внимательно изучаю) Завтра попробую это всё - базы под рукой нет |
|||
76
Crush
02.08.13
✎
19:28
|
(75) Окажите честь сначала моего пирога отведать в (61) :)
3 строчки запроса нужно причесать конструктором на предмет ошибок Вернусь в понедельник в ожидании черезмерной благодарности:) *Только это.. в рабочей базе не делай:)* |
|||
77
acabra
03.08.13
✎
09:56
|
промежуточный результат (и он работает). проблема в ссылках. вот.):
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ |Материалы.Ссылка |ИЗ | Документ.ТребованиеНакладная.Материалы КАК Материалы |ГДЕ Материалы.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)"; Рез = Запрос.Выполнить(); |
|||
78
Мимохожий Однако
03.08.13
✎
10:36
|
Вместо того, чтобы мучить телепатов, давно бы выложила свою обработку для анализа здесь или по ссылке.
|
|||
79
Web00001
04.08.13
✎
07:34
|
(77) матрица это таблица чисел, с допущением, что это не совсем таблица и там не числа. Зачем это все? Тебе сказали, что надо делать и куда идти.
|
|||
80
EugeniaK
04.08.13
✎
15:18
|
Основной вопрос. Где фотка?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |