Имя: Пароль:
1C
1С v8
Табличное Поле РегистраСведений на форме справочника номенклатура. 8.2 не управляемые ф.
0 Pinokio
 
11.02.20
13:01
Есть табличное поле, в нем отображена таблица (список) из регистра сведений.
Задача добавить еще колонку. и программно по наименованию присвоить строковое значени и показать (на регистр это не должно никак повлиять. ) чисто информаия для пользователя по остаткам.
1 catena
 
11.02.20
13:16
Добавляешь колонку вручну, при получении данных заполняешь
2 ДенисЧ
 
11.02.20
13:18
(0) Что делал, что не получилось?
3 Pinokio
 
11.02.20
13:30
Процедура ТабличноеПолеАналогиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
    мАртикул = ДанныеСтроки.Аналог.Артикул;
    КолонкаТП = ЭлементыФормы.ТабличноеПолеАналоги.Колонки.Артикул;
    КолонкаТП.ТолькоПросмотр = Ложь;
    КолонкаТП.Данные = СокрЛП(мАртикул);    //Недопустимое значение  (хотя и там и там строка )

    
КонецПроцедуры
4 НЕА123
 
11.02.20
13:32
(3)
это уже за денюжку

catena
5 catena
 
11.02.20
13:33
Не при выводе, а при получении. И заполнять не через ТП, а через ОформлениеСтрок. Примеры есть в интернете.

Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
    Массив = Новый Массив;
    Соответствие = Новый Соответствие;

    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Массив.Добавить(ОформлениеСтроки.Данныестроки.Физлицо);
        Соответствие.Вставить(ОформлениеСтроки.ДанныеСтроки.Физлицо, ОформлениеСтроки);
    КонецЦикла;
    Запрос = Новый Запрос;
    
    Запрос.Текст =  "ВЫБРАТЬ
                    |    РГ.Физлицо,
                    |    РГ.ПричинаИзмененияСостояния
                    |ИЗ
                    |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Физлицо В (&МассивСсылокОформления)) КАК РГ";
    
    Запрос.УстановитьПараметр("МассивСсылокОформления", Массив);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Строка = Соответствие.Получить(Выборка.Физлицо);
        Если Строка.ДанныеСтроки <> Неопределено Тогда
            Строка.Ячейки.Колонка1.Значение = Выборка.ПричинаИзмененияСостояния;
        КонецЕсли;    
    КонецЦикла;
    
КонецПроцедуры
6 НЕА123
 
11.02.20
13:33
(3)
СП тебе продаст ДенисЧ
7 catena
 
11.02.20
13:33
(4)ой...
8 Pinokio
 
11.02.20
14:02
Catena  разобрался.
)))  теперь финал данной истории,
как удалить запись (не удаляя из региста)
Полагаю через отбор нужно как то колдовать?
9 Pinokio
 
11.02.20
14:03
Для каждого СтрокаСоответсвия Из Соответствие Цикл
        Строка = Соответствие.Получить(СтрокаСоответсвия.Ключ);
        Строка.Ячейки.Артикул.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка.Артикул;
        Строка.Ячейки.Остаток.Значение = ПолучитьОстаток(Строка.ДанныеСтроки.Аналог);
        
        Если СокрЛП(Строка.Ячейки.Остаток.Значение) = "" Тогда
              СтрокаУдалить();// так не работает)
        КонецЕсли;
    КонецЦикла;
10 ДенисЧ
 
11.02.20
14:05
(8) "как удалить запись (не удаляя из региста)"
Нужно колдовать владением используемого языка. Потому что на том диалекте, который ты используешь тебя понять может только один человек в мире - ты сам...
11 Pinokio
 
11.02.20
14:08
Удалить строку из списка табличного документа на форме.
Если читать всю беседу. то Вполне можно догадаться.
12 ДенисЧ
 
11.02.20
14:10
(11) У тебя отражается список РС. Удалить из него можно, удалив запись. Если нужно не показывать эту запись  - или отбор, или своя тз, в которую загружаются данные из РС.
13 Pinokio
 
11.02.20
14:18
Можешь показать пример. как не показать эту запись с помощью отбора..
я просто первый впервые с отборами столкнулся)
14 Pinokio
 
11.02.20
14:20
Как вывести отбором по нужному реквизиту. я разобрался уже.
а вот как скрыть )))  но при этом чтобы старый отбор продолжал работать.
15 ДенисЧ
 
11.02.20
14:20
(13) Нужно определить условие, которое однозначно определяет эту строку. И потом уже накладывать условие.
16 Pinokio
 
11.02.20
14:24
Учитель из тебя так себе, должен я признаться)
17 ДенисЧ
 
11.02.20
14:25
(16) У меня телефон, наверное, испортился... Не показывает смс об увеличении баланса на счете.
18 Pinokio
 
11.02.20
14:25
Массив = Новый Массив;
    Соответствие = Новый Соответствие;

    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Массив.Добавить(ОформлениеСтроки.Данныестроки.Аналог);
        Соответствие.Вставить(ОформлениеСтроки.ДанныеСтроки.Аналог, ОформлениеСтроки);
    КонецЦикла;
    
    
    Для каждого СтрокаСоответсвия Из Соответствие Цикл
        Строка = Соответствие.Получить(СтрокаСоответсвия.Ключ);
        Строка.Ячейки.Артикул.Значение = ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка.Артикул;
        Строка.Ячейки.Остаток.Значение = ПолучитьОстаток(Строка.ДанныеСтроки.Аналог);
        
        Если СокрЛП(Строка.Ячейки.Остаток.Значение) = "" Тогда
            Строка.Удалить(); // Либо как мне удалить строку табличного поля. удовлетворяющего данному условию.
        КонецЕсли;
          
    КонецЦикла;
19 Pinokio
 
11.02.20
14:40
Строка.Ячейки.Артикул.Видимость = Ложь;
            Строка.Ячейки.Аналог.Видимость = Ложь;
            Строка.Ячейки.Остаток.Видимость = Ложь;
Вот так оно скрыло, но строка осталась. как ее полностью скрыть, может кто-то не сребролюбивый подскажет?
20 ДенисЧ
 
11.02.20
14:42
Если ты отбор по остатку делаешь - то тебе лучше положить не список на форму, а табличное поле. И заполнять его при открытии или по событиям.
21 ДенисЧ
 
11.02.20
14:43
Потому что отбор делается только по полям, имеющимся в базе данных (в случае списка РС).
22 catena
 
12.02.20
05:19
(19)Нельзя удалять, если тип ТП - регистр. Либо отбор, либо переделывать на таблицу.
23 Chameleon1980
 
12.02.20
07:23
Рождение новой звезды (aka ну вы поняли)?
24 unbred
 
12.02.20
07:43
(8)то выведи ему колонку, то спрячь..ты не ГБ?
Ошибка? Это не ошибка, это системная функция.