|
Таблица значений | ☑ | ||
---|---|---|---|---|
0
alexsandrinia
25.08.11
✎
15:28
|
как в Таблице Значений отыскать нужный элемент?
|
|||
1
Wobland
25.08.11
✎
15:29
|
спрашивал же уже. Найти(), НайтиСтроки(), Отыскать(), ОтыскатьСтроки()
|
|||
2
ДенисЧ
25.08.11
✎
15:29
|
Найти()
|
|||
3
NetDozor
25.08.11
✎
15:30
|
ТаблицаЗначений (ValueTable)
Найти (Find) Синтаксис: Найти(<Значение>, <Колонки>) Параметры: <Значение> (обязательный) Тип: Произвольный. Искомое значение. <Колонки> (необязательный) Тип: Строка. Список имен колонок, разделенных запятыми, по которым производится поиск. Если параметр не указан, поиск осуществляется по всей таблице значений. Значение по умолчанию: Пустая строка Возвращаемое значение: Тип: СтрокаТаблицыЗначений; Неопределено. Строка, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено. Описание: Осуществляет поиск значения в указанных колонках таблицы значений. Примечание: Метод эффективно использовать для поиска уникальных значений. Пример: НайденнаяСтрока = ТаблицаЦен.Найти(ВыбТовар, "Товар"); Если НайденнаяСтрока = Неопределено Тогда Предупреждение("Товар не найден!"); Иначе ЦенаТовара = НайденнаяСтрока.Цена; КонецЕсли; |
|||
4
kible
25.08.11
✎
15:31
|
||||
5
Валерьевна
25.08.11
✎
15:32
|
а вывести на форму и путь пользователи сами ищут! Забесили эти пользователи: интерфейс непонятный, алгоритмы нелогичные, ошибок в программе много... и т.д.
|
|||
6
alexsandrinia
25.08.11
✎
15:35
|
делаю вот так
НайденнаяСтрока = ТаблЗначНУ.Найти(08.03, "СчетДтНУ"); Если НайденнаяСтрока = Неопределено Тогда Предупреждение("Счет не найден!"); Иначе Счет = НайденнаяСтрока.Счет; ---тут как подправить? КонецЕсли; |
|||
7
Wobland
25.08.11
✎
15:37
|
(6) а это вопрос на отдельную ветку. зачем подправить?
|
|||
8
zbv
25.08.11
✎
15:37
|
(6) НайденнаяСтрока = ТаблЗначНУ.Найти(08.03, "СчетДтНУ");
- и что находит ? |
|||
9
kible
25.08.11
✎
15:39
|
(6) Счет = НайденнаяСтрока.СчетДтНУ - Так?
|
|||
10
mikecool
25.08.11
✎
15:39
|
что за переменная 08.03?
|
|||
11
alexsandrinia
25.08.11
✎
15:39
|
(7) разобраться не могу ТаблЗначНУ.Найти(08.03, "СчетДтНУ")
первый реквизит 08.03 - значение колонки СчетДтНУ, так ведь? в то то и дело, что не находит, а хотя есть на самом деле. видимо, перебор по всем строкам столбца СчетДтНУ надо сделать,да? |
|||
12
Валерьевна
25.08.11
✎
15:39
|
а что у неё в значениях в колонке "СчетДтНУ" стоит число какое-то 08.03??? Она что ищет-то?
|
|||
13
NetDozor
25.08.11
✎
15:40
|
08.03 возьми в кавычки
|
|||
14
Mort
25.08.11
✎
15:40
|
Это числовая константа :) Восемь целых три сотых.
|
|||
15
mikecool
25.08.11
✎
15:41
|
(12) фигня какая-то ))
что пьешь? ) |
|||
16
Валерьевна
25.08.11
✎
15:41
|
Если предопределенный счет, то надо искать Планысчетов.Налоговый.БлаБлаБла
|
|||
17
alexsandrinia
25.08.11
✎
15:41
|
(12) - нужно найти счет 08.03 в колонке СчетДтНУ
|
|||
18
mikecool
25.08.11
✎
15:41
|
(17) учитывай типы при поиске
|
|||
19
zbv
25.08.11
✎
15:41
|
(11) Какой тип данных хранится в колонке "СчетДтНУ" ?
|
|||
20
Валерьевна
25.08.11
✎
15:42
|
(13)> 08.03 возьми в кавычки
даже два раза не поможет, если там не строка |
|||
21
NetDozor
25.08.11
✎
15:43
|
(20) да я уж понял что маленько не того сморозил :)
|
|||
22
alexsandrinia
25.08.11
✎
15:43
|
(19) тип - КолонкаТаблицыЗначений
|
|||
23
zbv
25.08.11
✎
15:44
|
(22) не смешно.
|
|||
24
Mort
25.08.11
✎
15:44
|
(22) ААААА!!! Какой отжиг!
|
|||
25
kible
25.08.11
✎
15:44
|
(22) ТаблЗначНУ.Найти(Планысчетов.Налоговый.БлаБлаБла, "СчетДтНУ") Так попробуй.
|
|||
26
NetDozor
25.08.11
✎
15:45
|
попробуй так еще:
НайденнаяСтрока = ТаблЗначНУ.Найти(ПланыСчетов.Налоговый.НайтиПоКоду("08.03"), "СчетДтНУ"); |
|||
27
Mort
25.08.11
✎
15:46
|
Света Семененко вернулась
|
|||
28
Rovan
гуру
25.08.11
✎
15:46
|
(+24) гыыы !
(25) счас скажет, что поле БлаБлаБла не найдено !! |
|||
29
Валерьевна
25.08.11
✎
15:46
|
(25) нет! что ты!!! так тоже не поможет. Мне кажется она не сможет вместо блаблабла подставить имя предопределенного счета
|
|||
30
kible
25.08.11
✎
15:46
|
(28) :)
|
|||
31
kible
25.08.11
✎
15:47
|
(29) Это он.
|
|||
32
Быдлокодер 80 lvl
25.08.11
✎
15:47
|
(4) Хаха, + 100!
|
|||
33
alexsandrinia
25.08.11
✎
15:48
|
пишет, что счет такой не найден
|
|||
34
alexsandrinia
25.08.11
✎
15:49
|
а как сделать поиск по всем строкам этого столбца? у меня, по ходу, всего лишь по одной строке обходит...
|
|||
35
NetDozor
25.08.11
✎
15:49
|
какой такой, полный текст ошибки в студию можно
|
|||
36
kible
25.08.11
✎
15:50
|
(34) найти ищет по всем строкам.
|
|||
37
alexsandrinia
25.08.11
✎
15:51
|
делаю вот так
НайденнаяСтрока = ТаблЗначНУ.Найти(ПланыСчетов.Налоговый.ВложенияВоВнеоборотныеАктивы, "СчетДтНУ"); Если НайденнаяСтрока = Неопределено Тогда Предупреждение("Счет не найден!"); Иначе Счет = НайденнаяСтрока.СчетДтНУ; КонецЕсли; и выходит сообщение "Счет не найден!", поскольку НайденнаяСтрока = Неопределено и конец программы |
|||
38
Валерьевна
25.08.11
✎
15:51
|
очень неконфиликтный и стрессоустойчивый тип. Это хорошо :).
|
|||
39
Rovan
гуру
25.08.11
✎
15:52
|
(37) посмотри значение
ТаблЗначНУ.Количество() |
|||
40
kible
25.08.11
✎
15:52
|
(37) не значит нет этого счета в ТЗ
|
|||
41
zbv
25.08.11
✎
15:52
|
(37) откуда взялась ТаблицаЗначений ?
|
|||
42
Sersh
25.08.11
✎
15:53
|
ТаблЗначНУ.ВыбратьСтроку()
|
|||
43
mikecool
25.08.11
✎
15:54
|
(38) тип значения в ТЗ? )
|
|||
44
NetDozor
25.08.11
✎
15:54
|
и все-таки с типом данных в колонке "СчетДтНУ" надо разобраться, может там и вправду строка
|
|||
45
Wobland
25.08.11
✎
15:54
|
(38) это ты про (19)?
|
|||
46
alexsandrinia
25.08.11
✎
15:54
|
(39) значение - 91, тип - число
|
|||
47
Валерьевна
25.08.11
✎
15:55
|
(37) отладчиком сумеешь воспользоваться? остановись в строке "Если НайденнаяСтрока = Неопределено Тогда" и сделай .... так блин... я зависла как объяснить, что ему надо ТаблЗначНУ Показать в табло... Объясните за меня. Там за одно и типы значений подсмотрит
|
|||
48
salvator
25.08.11
✎
15:55
|
(38) Смотри, сейчас напишет что все тут холопы, что пишем ересь (с)
|
|||
49
alexsandrinia
25.08.11
✎
15:55
|
(41) в таблицу значений закинул запрос (вернее, выгрузил в него)
|
|||
50
alexsandrinia
25.08.11
✎
15:56
|
(48) всё нормально, без паники, господа)))
|
|||
51
Sersh
25.08.11
✎
15:56
|
смотри ТипЗнч(ТаблЗначНУ[0].СчетДтНУ)
|
|||
52
alexsandrinia
25.08.11
✎
15:57
|
(51) как мне это сделать?
|
|||
53
zbv
25.08.11
✎
15:58
|
(49) покажи запрос.
|
|||
54
alexsandrinia
25.08.11
✎
15:58
|
домой пора, завтра только смогу проверить((((
|
|||
55
Sersh
25.08.11
✎
15:58
|
НайденнаяСтрока = ТаблЗначНУ.Найти(ПланыСчетов.Налоговый.ВложенияВоВнеоборотныеАктивы, "СчетДтНУ");
Если НайденнаяСтрока = Неопределено Тогда Предупреждение(ТипЗнч(ТаблЗначНУ[0].СчетДтНУ)); Предупреждение("Счет не найден!"); Иначе Счет = НайденнаяСтрока.СчетДтНУ; КонецЕсли; |
|||
56
alexsandrinia
25.08.11
✎
15:59
|
(53)
ЗапросНУ = Новый Запрос; ЗапросНУ.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | СоответствиеСчетовБУиНУ.СчетБУ КАК СчетБУ_НУ, | СоответствиеСчетовБУиНУ.СчетНУ КАК СчетНУ_НУ, | НУ.Организация КАК ОрганизацияНУ, | НУ.СчетДтНУ КАК СчетДтНУ, | НУ.СчетКтНУ КАК СчетКтНУ, | НУ.ВидУчетаДтНУ КАК ВидУчетаДтНУ, | НУ.ВидУчетаКтНУ КАК ВидУчетаКтНУ, | НУ.СуммаНУ |ИЗ | (ВЫБРАТЬ | ОтражениеЗарплатыВРеглУчете.Организация.Ссылка КАК Организация, | Налоговый.СчетДт КАК СчетДтНУ, | Налоговый.СчетКт КАК СчетКтНУ, | Налоговый.ВидУчетаДт КАК ВидУчетаДтНУ, | Налоговый.ВидУчетаКт КАК ВидУчетаКтНУ, | СУММА(Налоговый.Сумма) КАК СуммаНУ | ИЗ | РегистрБухгалтерии.Налоговый КАК Налоговый | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете | ПО Налоговый.Регистратор = ОтражениеЗарплатыВРеглУчете.Ссылка | ГДЕ | ОтражениеЗарплатыВРеглУчете.Проведен = ИСТИНА | И ОтражениеЗарплатыВРеглУчете.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода | И Налоговый.Период МЕЖДУ &НачалоПериода И &КонецПериода | | СГРУППИРОВАТЬ ПО | ОтражениеЗарплатыВРеглУчете.Организация.Ссылка, | Налоговый.ВидУчетаКт, | Налоговый.СчетКт, | Налоговый.ВидУчетаДт, | Налоговый.СчетДт) КАК НУ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеСчетовБУиНУ КАК СоответствиеСчетовБУиНУ | ПО НУ.СчетДтНУ = СоответствиеСчетовБУиНУ.СчетНУ | |УПОРЯДОЧИТЬ ПО | ОрганизацияНУ, | СчетДтНУ.Код, | ВидУчетаДтНУ, | СчетКтНУ.Код, | ВидУчетаКтНУ"; |
|||
57
Валерьевна
25.08.11
✎
15:59
|
(52) ТаблЗначНУ.Количество() это он значит посмотрел, дал ответ в (46), а теперь прикидывается, что не умеет посомтреть ТипЗнч(ТаблЗначНУ[0].СчетДтНУ). тема - развод.
|
|||
58
alexsandrinia
25.08.11
✎
16:00
|
(55) план счетов.план счетов налогового учета
|
|||
59
Sersh
25.08.11
✎
16:01
|
(55) значит нет такого в тз
|
|||
60
Sersh
25.08.11
✎
16:04
|
в (11) ищешь счет 08.03, а в (37) счет 08
|
|||
61
Валерьевна
25.08.11
✎
16:05
|
(56) а ты вообще результат запроса своего хотя бы в консоли отчетов видел? ты там что зачем соединяешь?
|
|||
62
Sersh
25.08.11
✎
16:06
|
из (11) следует что нужно искать ПланыСчетов.Налоговый.СтроительствоОбъектовОсновныхСредств
|
|||
63
Валерьевна
25.08.11
✎
16:13
|
не, ну просто из регистра налоговый можно напрямую получить Организацию, зачем присобачивать реквизит Организация из документа ОТражениеЗпВреглУчете, уже запрос меньше будет.
|
|||
64
Валерьевна
25.08.11
✎
16:14
|
может тебе просто надо, чтобы регистраторами были только документы ОтражениеЗПВРеглУчете?
|
|||
65
alexsandrinia
26.08.11
✎
11:47
|
(64) оставил только этот документ регистратором, всё равно получается (55)
|
|||
66
alexsandrinia
26.08.11
✎
11:58
|
НайденнаяСтрока = ТаблЗначНУ.Найти(ПланыСчетов.Налоговый.ВложенияВоВнеоборотныеАктивы.Код, "СчетДтНУ");
Если НайденнаяСтрока = Неопределено Тогда Предупреждение(ТипЗнч(ТаблЗначНУ[0].СчетДтНУ)); Предупреждение("Счет не найден!"); Иначе Счет = НайденнаяСтрока.СчетДтНУ; Сообщить(Счет); КонецЕсли; хотя, когда в отладчике смотрю значение "ПланыСчетов.Налоговый.ВложенияВоВнеоборотныеАктивы.Код" пишет значение "08", тип строка |
|||
67
alexsandrinia
26.08.11
✎
12:32
|
есть у кого какие-нибудь мысли?
|
|||
68
alexsandrinia
26.08.11
✎
13:37
|
можно как-нибудь сделать поиск или нет?
|
|||
69
ДенисЧ
26.08.11
✎
13:38
|
(68) Можно. Но у тебя не получится.
|
|||
70
alexsandrinia
26.08.11
✎
13:39
|
(69) почему не получится?
|
|||
71
NetDozor
26.08.11
✎
13:40
|
Вот так наверно все-таки надо сделать:
НайденнаяСтрока = ТаблЗначНУ.Найти(ПланыСчетов.Налоговый.СтроительствоОбъектовОсновныхСредств, "СчетДтНУ"); |
|||
72
alexsandrinia
26.08.11
✎
13:48
|
(71)
|
|||
73
alexsandrinia
26.08.11
✎
13:49
|
(71) спасибо, всё заработало. только выводит одну строку с таким счётом, хотя там их 4
|
|||
74
ДенисЧ
26.08.11
✎
13:50
|
(73) используй НайтиСтроки()
|
|||
75
alexsandrinia
26.08.11
✎
13:51
|
(73) {Форма.ФормаОтчета(253)}: Слишком много фактических параметров
НайденнаяСтрока = ТаблЗначНУ.НайтиСтроки(ПланыСчетов.Налоговый.СтроительствоОбъектовОсновныхСредств, "СчетДтНУ"); |
|||
76
Wobland
26.08.11
✎
13:52
|
(75) обратись к ДенисЧ, у него сегодня скидки ;)
|
|||
77
alexsandrinia
26.08.11
✎
13:53
|
(74) ошибка получается)))
|
|||
78
ДенисЧ
26.08.11
✎
13:54
|
(77) Купи у меня СП. И курсы по умению его читать.
(76) Для автора - наценка. И немаленькая. |
|||
79
NetDozor
26.08.11
✎
13:54
|
ну посмотри уже в СП, вот что там написано:
ТаблицаЗначений (ValueTable) НайтиСтроки (FindRows) Синтаксис: НайтиСтроки(<ПараметрыОтбора>) Параметры: <ПараметрыОтбора> (обязательный) Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение. Возвращаемое значение: Тип: Массив. Массив строк таблицы значений, соответствующих условиям поиска. Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным. Описание: Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Метод эффективно использовать для выборки неуникальных значений. Пример: // СписокРаботников - реквизит формы для представления информации // о работниках (тип ТаблицаЗначений). // В форме расположено табличное поле СписокРаботников, в котором // показываются данные СписокРаботников. // С помощью запроса выбирается информация о работниках. Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ // текст запроса // ... "; Запрос.Текст = ТекстЗапроса; СписокРаботников = Запрос.Выполнить().Выгрузить(); Отбор = Новый Структура(); Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка()); Строки = СписокРаботников.НайтиСтроки(Отбор); Если Строки.Количество() > 0 Тогда ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0]; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |