Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 5
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как получить доступ к ячейке табличной части на форме          
BeLuY Подменю пользователя
сообщение 02.06.20, 15:46
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 30
Спасибо сказали: 4 раз
Рейтинг: 4

Добрый день! Нужна помощь - совсем запутался: Есть документ с табличной частью Товары с реквизитами Номенклатура, ЕдиницаИзмерения, Цена, ЦенаБазовая, ХарактеристикаНоменклатуры, БазоваяЕдиницаИзмерения, ЦенаБезАкции. На форме документа, в эту же таблицу добавлена одна колонка ЦенаСтарая, значение которой заполняется в процедуре ПриОткрытии() (Вроде правильно описал crazy.gif)

Задача стоит в том, чтобы иметь возможность выделять строку табличной части, и при нажатии на определенную кнопку, происходил расчет значения ячейки ЦенаБезАкции, на основании значения ячейки ЦенаСтарая, но у меня не получается получить доступ к данной ячейке.

СтрокаТЧ= ЭлементыФормы.Товары.ТекущаяСтрока;

В данном случае я могу получить доступ к реквизитам табличной части, что прописаны в документе (СтрокаТЧ.Цена, СтрокаТЧ.ЦенаСоСкидкой и прочие), но не могу получить доступ к полю ЦенаСтарая (при обращению к СтрокаТЧ.ЦенаСтарая выдает ошибку "Поле объекта не обнаружено (ЦенаСтарая)")

Каким образом можно получить значение этой ячейки?

Спасибо!

Цитата
Программирование обычных форм 1С 8.2 и не интерфейсной логики

Блин, кажется с разделом промахнулся.... Если так, прошу переместить в правильный (сорри, еще не полностью изучил структуру форума)


mut Подменю пользователя
сообщение 02.06.20, 20:37
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 157
Из: Новая Каховка
Спасибо сказали: 128 раз
Рейтинг: 144.8

Попробуйте через
СтрокаТЧ= ЭлементыФормы.Товары.ТекущиеДанные;

BeLuY Подменю пользователя
сообщение 02.06.20, 21:08
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 30
Спасибо сказали: 4 раз
Рейтинг: 4

mut @ Сегодня, 21:37 * ,

Делал и через СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные, и через СтрокаТЧ = ЭлементыФормы.Товары.ТекущаяСтрока - результат один и тот же (а если честно, не понимаю в чем разница, если пройти отладчиком - структура и данные одни и те же)

kooperdj Подменю пользователя
сообщение 02.06.20, 21:50
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Полтава
Спасибо сказали: 10 раз
Рейтинг: 0

а не проще повторить алгоритм расчета из ПриОткрытии() для текущей строки и дорасчитать что вам надо? Если поле не связано с данными - то там текст, доступный только в ОформленииСтроки.

Vofka Подменю пользователя
сообщение 03.06.20, 8:16
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13535
Из: Киев
Спасибо сказали: 4210 раз
Рейтинг: 3363

BeLuY, покажите как оно заполняется в ПриОткрытии()

BeLuY Подменю пользователя
сообщение 03.06.20, 10:28
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 30
Спасибо сказали: 4 раз
Рейтинг: 4

Упс, ошибся, не в процедуре ПриОткрытии()

Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
    дкТоварыПриПолученииДанных(ЭтаФорма, Элемент, ОформленияСтрок, Права);
    
    // ..........................................        
        
    Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
               ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;

        // ..........................................                
            
        Если Элемент.Колонки.ЦенаСтарая.Видимость Тогда
            Если (НЕ ДанныеСтроки.Номенклатура.Пустая()) И (НЕ ТипЦен.Пустая()) тогда
                ОформлениеСтроки.Ячейки.ЦенаСтарая.ОтображатьТекст=Истина;
                // получим предыдущую цену
                ЦенаСтарая = ПолучитьСтаруюЦену(ДанныеСтроки);
                ОформлениеСтроки.Ячейки.ЦенаСтарая.Текст=Формат(ЦенаСтарая,"ЧЦ=15; ЧДЦ=2");
                
                // ..........................................
                    
            КонецЕсли;

        // ..........................................
        
    КонецЦикла;
КонецПроцедуры

kooperdj Подменю пользователя
сообщение 03.06.20, 10:44
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Полтава
Спасибо сказали: 10 раз
Рейтинг: 0

BeLuY @ Сегодня, 11:28 * ,
У вас есть функция ПолучитьСтаруюЦену(ДанныеСтроки); пользуйтесь ей. Мне кажется, логика приложения прихрамывает smile.gif

Спасибо сказали: BeLuY,

BeLuY Подменю пользователя
сообщение 03.06.20, 11:15
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 30
Спасибо сказали: 4 раз
Рейтинг: 4

kooperdj @ Сегодня, 11:44 * ,

Вижу, что ничего другого не остается... Но все же, хотелось бы понять как получить доступ к данной ячейке smile.gif

kooperdj Подменю пользователя
сообщение 03.06.20, 11:49
Сообщение #9

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Полтава
Спасибо сказали: 10 раз
Рейтинг: 0

BeLuY @ Сегодня, 12:15 * ,
Такие поля доступны в двух процедурах ...ПриВыводеСтроки() и ...ПриПолученииДанных() обе жрут ресурсы, вторая чуть поменьше. Отображаются там обычно доп. инфа, флажки, картинки (то что в базе не сохраняется). По таким колонкам не считаются итоги. При этом данные меняются динамически, при каждом скроллинге таб части. Если сильно хочется обложиться костылями - можно источником данных указать ТаблицаЗначений, загружать в нее данные из ТабЧасти документа, обрабатывать и выгружать назад (пример - Установка цен номенклатуры в типовых)

Спасибо сказали: BeLuY,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 31.07.21, 10:09
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!