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

Табличное Поле РегистраСведений на форме справочника номенклатура. 8.2 не управляемые ф.

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


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

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

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

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

        КонецЕсли;
    КонецЦикла;
   ДенисЧ
 
10 - 11.02.20 - 14:05
(8) "как удалить запись (не удаляя из региста)"
Нужно колдовать владением используемого языка. Потому что на том диалекте, который ты используешь тебя понять может только один человек в мире - ты сам...
   Pinokio
 
11 - 11.02.20 - 14:08
Удалить строку из списка табличного документа на форме.
Если читать всю беседу. то Вполне можно догадаться.
   ДенисЧ
 
12 - 11.02.20 - 14:10
(11) У тебя отражается список РС. Удалить из него можно, удалив запись. Если нужно не показывать эту запись  - или отбор, или своя тз, в которую загружаются данные из РС.
   Pinokio
 
13 - 11.02.20 - 14:18
Можешь показать пример. как не показать эту запись с помощью отбора..
я просто первый впервые с отборами столкнулся)
   Pinokio
 
14 - 11.02.20 - 14:20
Как вывести отбором по нужному реквизиту. я разобрался уже.
а вот как скрыть )))  но при этом чтобы старый отбор продолжал работать.
   ДенисЧ
 
15 - 11.02.20 - 14:20
(13) Нужно определить условие, которое однозначно определяет эту строку. И потом уже накладывать условие.
   Pinokio
 
16 - 11.02.20 - 14:24
Учитель из тебя так себе, должен я признаться)
   ДенисЧ
 
17 - 11.02.20 - 14:25
(16) У меня телефон, наверное, испортился... Не показывает смс об увеличении баланса на счете.
   Pinokio
 
18 - 11.02.20 - 14:25
Массив = Новый Массив;
    Соответствие = Новый Соответствие;

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

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


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