Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обращение к элементу поля табличного документа

Обращение к элементу поля табличного документа
Я
   synapce
 
02.09.21 - 14:49
Всем привет!
1С бухгалтерия 8.3

Начну сначала. Есть функция в общем модуле, которая вычисляет запросами результат и выводит его на форму, в поле табличного документа ТабДок
К примеру, он заполнился:
Поле1 Поле2 Поле3

Мне же нужно обратиться к Поле2 и сделать проверку, что если он меньше нуля, то Сообщить("Поле2 меньше нуля, перепроверьте данные");

Как это осуществить?
Заранее спасибо!
   ДенисЧ
 
1 - 02.09.21 - 14:53
А не лучше это проверять перед выводом?
А так - получаешь область по адресу и смотришь...
   synapce
 
2 - 02.09.21 - 15:00
(1) запрос километровый) много зависимостей, каждому своё. Лучше бы конечно по адресу получить, так понимаю, конкретно по строке обратиться? Типа [R2C4] нечто такого?
   Мультук
 
3 - 02.09.21 - 15:09
(2) тогда проверяй "во время" вывода
   synapce
 
4 - 02.09.21 - 15:13
(3) не канает, вопрос стоит именно по результату в табличном поле
   Мультук
 
5 - 02.09.21 - 15:23
(4) Тогда по [R2C4]

Как вариант можно именовать области во время вывода, как тебе нравится, например строка_X_Y  --> строка_1_2
и перебирать области в цикле. Так в свое время делали регламентированные отчеты в БП (например бухбаланс)
   synapce
 
6 - 02.09.21 - 15:29
(5) В данном случае как его сравнить с нулем? Он ж не даст) Несоответствие типов и т.д.
Всё, что в ячейке - текст
   Guk
 
7 - 02.09.21 - 15:32
(6) а текст запрещено в число преобразовывать?...
   Мультук
 
8 - 02.09.21 - 15:34
(6) F1 в синтакс-помошнике по Табличный документ СодержитЗначение Значение
   Мультук
 
9 - 02.09.21 - 15:36
(6) Вот тут внезапно люди как-то что-то делают

Ячейка = Результат.Область(ИндексСтрока, ИндексКолонка, ИндексСтрока, ИндексКолонка);
    Если Ячейка.Видимость = Истина Тогда
        Если Ячейка.СодержитЗначение И ТипЗнч(Ячейка.Значение) = Тип("Число") Тогда
            Сумма = Сумма + Ячейка.Значение;
        ИначеЕсли ЗначениеЗаполнено(Ячейка.Текст) Тогда
            ЧислоВЯчейке = Число(СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими(Символ(32)+Символ(43), Ячейка.Текст, Символ(0)));
            Сумма = Сумма + ЧислоВЯчейке;
        КонецЕсли;
    КонецЕсли;

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.