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

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

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

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

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

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