|
v7: Тз и НайтиЗначение | ☑ | ||
---|---|---|---|---|
0
FaustNz
06.05.15
✎
12:26
|
День добрый.
Не пойму почему ТзСклады.НайтиЗначение(Склад, , ) всегда возвращает 0 , даже если повторно выбрать склад, который уже есть в ТЗ код: ///+код Склад = СоздатьОбъект("Справочник.Склады"); Если (Склад.Выбрать("Укажите склад","ФормаСписка")=0) Тогда Возврат; КонецЕсли; Если ТзСклады.НайтиЗначение(Склад, , )=1 Тогда Возврат; КонецЕсли; ТзСклады.НоваяСтрока(); ТзСклады.Склад = Склад; ///-код В чем бяда? Спасиб |
|||
1
Spyke
06.05.15
✎
12:30
|
(0) ТзСклады.Склад какой тип?
|
|||
2
Cap_1977
06.05.15
✎
12:31
|
Если ТзСклады.НайтиЗначение(Склад, , )=1 Тогда
замени на Если ТзСклады.НайтиЗначение(Склад.ТекущийЭлемент(), , )=1 Тогда |
|||
3
Эльниньо
06.05.15
✎
12:32
|
с = 0;
с = ТзСклады.НайтиЗначение(Склад, с, "Склад"); Если с > 0 Тогда ВонОн = ТзСклады.ПолучитьЗначение(с, "Склад"); |
|||
4
FaustNz
06.05.15
✎
12:42
|
(1) произвольное
(2) не помогло. Склад спозиционирован правильно(отладчиком проверил) (3) С указанием колонки не находит, в С строку не возвращает ///+код Процедура ПриОткрытии() ТзСклады.НоваяКолонка("Склад"); КонецПроцедуры Процедура ПоКнДобавитьСклад() Склад = СоздатьОбъект("Справочник.Склады"); Если (Склад.Выбрать("Укажите склад","ФормаСписка")=0) Тогда Возврат; КонецЕсли; Стр = 0; Если (ТзСклады.НайтиЗначение(Склад.ТекущийЭлемент(),Стр ,"Склад")=1) или (Стр>0) Тогда Возврат; КонецЕсли; ТзСклады.НоваяСтрока(); ТзСклады.Склад = Склад; Конецпроцедуры ///-код загадка какая-то ... |
|||
5
Cap_1977
06.05.15
✎
12:43
|
(Стр>0) это лишнее
|
|||
6
Cap_1977
06.05.15
✎
12:43
|
и .НайтиЗначение сравнивай с нулем )
|
|||
7
1Сергей
06.05.15
✎
12:46
|
ТзСклады.Склад = Склад.ТекущийЭлемент();
|
|||
8
FaustNz
06.05.15
✎
12:48
|
(5) Да эт я так, с избыточностью написал от отчаянья )
(6) Почему? Мне наличие в Тз склада надо выловить (7) Помогло! Только пока не въехал почему. |
|||
9
Spyke
06.05.15
✎
12:48
|
(4) Если произвольное, значит строка, замени на
ТзСклады.НайтиЗначение(СОКРЛП(Склад.ТекущийЭлемент().Наименование, ,) |
|||
10
FaustNz
06.05.15
✎
12:51
|
(9) В сторону типа тож копал, пробовал по наименованию, не помогало. В отладчике в Тз сидели именно элементы справочника
|
|||
11
DCKiller
06.05.15
✎
13:02
|
(7) Потому что когда ты устанавливаешь ТзСклады.Склад = Склад, ты устанавливаешь в ячейку ТЗ элемент-объект "Справочник.Склады", а ТекущийЭлемент() возвращает ссылку на элемент справочника.
|
|||
12
FaustNz
06.05.15
✎
13:04
|
(11) Спасиб, дошло. Объект и ссылка в 8-ке. Думал тут такого нет.
|
|||
13
1Сергей
06.05.15
✎
13:05
|
(9) меня всегда корёжит от вот такого написания:
Склад.ТекущийЭлемент().Наименование |
|||
14
FaustNz
06.05.15
✎
13:13
|
(13) Почему?
|
|||
15
DCKiller
06.05.15
✎
13:15
|
(14) В данном случае достаточно просто Склад.Наименование
|
|||
16
Злопчинский
06.05.15
✎
14:59
|
(13) такое написание читает актуальные данные
потому что Склад.Наименование <> Склад.ТекущийЭлемент().Наименование может быть ??? |
|||
17
Serginio1
06.05.15
✎
15:36
|
(4) Проще использовать глобальную функцию
Функция глНайтиЗначениеВТз(Тз,Значение,ИмяКолонки) Экспорт стр=0; Если Тз.НайтиЗначение(Значение,стр,ИмяКолонки)=1 Тогда Тз.ПолучитьСтрокуПоНомеру(стр); Возврат 1; КонецЕсли; Возврат 0; КонецФункции // глНайтиЗначениеВТз |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |