Имя: Пароль:
1C
1С v8
Как выделить цветом позиции в документе, по которым остаток =0
0 sagitt
 
29.12.21
10:48
Добрый день друзья, поздравляю всех с наступающим Новым Годом.

Необходимо выделить красным строки документа, если на остатках нет этой номенклатуры.
База самодельная, ни на что не похожа.

Ввел в реквизиты формы добавил колонку "Остаток", чтобы использовать для условного оформления, тип число. Но не могу понять, как ее можно заполнить остатками склада.
Конечно запрос то я создам, но в каких процедурах это надо делать не знаю.

в интернете по теме нашел
_https://zdst.net/1s-8-3-kak-dobavit-dopolnitelnuyu-vychislyaemuyu-kolonku-v-tablichnoj-chasti-upravlyaemoj-formy/
Но там заполняется табличная часть объекта, что делать не хочется, ведь это приведет к увеличению объема базы.

Подскажите, как правильно решить проблему.
1 PuhUfa
 
29.12.21
10:51
(0) возьми любую типовую... БП, УТ, ЕРП, там в каждом документе есть примеры
2 Kassern
 
29.12.21
10:55
(0) УФ - через условное оформление, ОФ - через событие ТЧ
3 Kigo_Kigo
 
29.12.21
10:55
при выборе номенклатуры (или при заполнении ТЧ)запросом смотрим остаток, подставляем его, и если он ноль, раскрашиваем строку в чем трудность?
4 sagitt
 
29.12.21
11:04
У меня УФ.
Трудность в том, как подставить.
Не пойму, как можно заполнить новую колонку.
5 Kassern
 
29.12.21
11:06
(4) Создаете колонку с остатком, далее простое условие в Условном оформлении Остаток<0 Цвет такой-то
6 vicof
 
29.12.21
11:06
Не в реквизиты формы, а в динамическом списке надо запрос менять.
7 Kassern
 
29.12.21
11:09
(6) вы о чем? Какой список?) "Необходимо выделить красным строки документа"
8 Kassern
 
29.12.21
11:09
тут речь о ТЧ документа, сколько я понял из (0)
9 sagitt
 
29.12.21
11:10
У меня форма документа. На ней расположена табличная часть "Товары".
10 Kassern
 
29.12.21
11:10
11 Kassern
 
29.12.21
11:10
почитайте на досуге, может получится под новый год сделать разноцветные строчки)
12 vicof
 
29.12.21
11:11
(7) Упс, сорян. Уже в глазах рябит то таких тем)
13 vicof
 
29.12.21
11:11
от*
14 sagitt
 
29.12.21
11:17
(10) Спвсибо за ссылки. Настроить условное оформление проблем не составляет но для начала надо получить остаток в какой то колонке ТЧ документа. Я уже приводил ссылку на решение аналогичной задаи, но там предполагается наличие поля остаток в реквизитах табличной части документа объекта.
Мне же хочется получить остатки динамически.
15 sagitt
 
29.12.21
11:19
(1) Уважаемый  PuhUfa, не подскажите, в каком документе УТ можно посмотреть такой пример?
16 Kassern
 
29.12.21
11:21
(14) если есть реквизит КодСтроки, или позиции у вас уникальные, то можете сделать программно условие, для списка таких строк
17 vicof
 
29.12.21
11:21
(14) В (0) нормальное решение. С чего там объем базы увеличится?
18 sagitt
 
29.12.21
11:25
(17) Если сейчас приходится хранить Xбайт на каждую строчку, то после добавления еще одного реквизита будет X+Y байт, где Y>0.
Документов очень много. база и так весит около 50 ГБ.
19 sagitt
 
29.12.21
11:27
(14) А есть где-нибудь пример посмотреть, как реализовать такое программно условие?
20 PuhUfa
 
29.12.21
11:27
(15) Да в том же заказе клиента или РТиУ. Посмотри как сделаны служебные колонки ТЧ
21 vicof
 
29.12.21
11:27
(18) У тебя реквизит формы добавляется. Который заполняется программно.
22 Kassern
 
29.12.21
11:27
(18) Гляньте на колонку артикул в типовой базе, по факту это всего лишь реквизит ТЧ, который заполняется из номенклатуры
23 vicof
 
29.12.21
11:27
+(21) А не реквизит объекта.
24 Kassern
 
29.12.21
11:28
Вам никто не говорит добавлять реквизит Остаток в ТЧ объекта
25 Мимохожий Однако
 
29.12.21
11:29
(18) не забудь потом сделать замер при открытии формы документа до и после динамического получения остатков. Возможно, при большой базе лучше добавить немного реквизитов, чем иметь тормоза.
26 sagitt
 
29.12.21
11:30
Я описывал пример, который нашел. Возможно там опечатка.
27 Kassern
 
29.12.21
11:30
(25) оставьте это для следующей темы ТС)
28 Kigo_Kigo
 
29.12.21
11:30
(18) (19) Ты же будешь выделыть в ТЧ документа а не в динамическом списке списка документов, причем тут ТЧ документа и сам документ, тем более список этих документов
29 Мимохожий Однако
 
29.12.21
11:31
По большому счёту остаток нужен только при подборе товара в табличную часть документа. А после проведения получать остатки-нелогичное излишество.
30 sagitt
 
29.12.21
11:36
(22) Артикул однозначно связан с номенклатурой, поэтому легко получается как Объект.Товары.Артикул
Мнеже необходимо получить данные по запросу.

(29) Я с вами согласен в целом, но у клиента существует своя точка зрения. А она как известно не нобязана быть логичной. Он просто так хочет.
А я должен сделать чтобы так было.
31 Kassern
 
29.12.21
11:38
(30) ну так получайте и заполняйте этот реквизит формы каждый раз при изменении номенклатуры/строк
32 Kassern
 
29.12.21
11:40
это плата за то, что вы не храните инфу в базе (приходится каждый раз открывая документ, считывать остатки). А потом получите интересное событие. Вас спросят, а какого художника товар товар светится красным, а мы его продали?)) А дело в том, что кто-то задним числом отредактировал отгрузку/списание/приход товара, а у вас нет информации, какой отображался остаток на момент проведения документа, вы лишь сможете отобразить, какой он на дату документа.
33 vicof
 
29.12.21
11:44
(32) Можно подойти после этого к пользователю, взять за шкирку и тыкать носом в листочек с его техзаданием)
34 Kassern
 
29.12.21
11:46
(33) а они будут с выпученными глазами говорить, мол вы же тут специалист, почему не сказали, что так может быть!
35 vicof
 
29.12.21
11:51
(34) И после этого можно гнуть свою линию. Т.е. они признают, что ты специалист, и как ты сказал, так и будет.
36 Мимохожий Однако
 
29.12.21
11:53
(30) Подобный подход к задаче мне понятен. Я через него прошёл в своё время. Клиент прав, если платит. Советую изложить свои возражения на бумаге и завизировать у заказчика, чтобы потом при очередных непонятках сунуть ему в нос и взять еще раз денежку за отключение этой функциональности.
37 Kassern
 
29.12.21
12:00
(35) другая логика у них, если ты специалист, то должен был предусмотреть и предупредить, а если не специалист, то за что тебе платили бабки?)
38 sagitt
 
29.12.21
12:10
(31)Как его заполнить?
Чтобы заполнить нужо перебрать строки списка.
    для каждого с из Объект.Товары цикл

не пройдет: перебирается именно табличная часть документа, данных по новой колонке там нет.

У элементы.Товары (ТаблицаФормы, соотв тч товары) есть только Текущаястрока и ТекущиеДанные

Но я понимаю, если в 1С сделали возможность ввести колонку , значит должна быть возможность ее заполнить.
Подскажите, как.
39 Kigo_Kigo
 
29.12.21
12:13
(36) и получается вот так
https://www.yaplakal.com/findpost/107841222/forum2/topic2371881.html
)))
40 Мимохожий Однако
 
29.12.21
12:14
(38) выполняй операции НаСервере или в модуле документа.
41 sagitt
 
29.12.21
12:16
(40) Так что нужно выполнить, чтобы в каждой строке прописать Остаток=1?
42 vicof
 
29.12.21
12:18
43 Мимохожий Однако
 
29.12.21
12:19
(41) Надо написать несколько процедур в разных модулях.
44 vicof
 
29.12.21
12:21
(37) Тут уже от личных качеств зависит, как себя поставишь)
45 sagitt
 
29.12.21
12:32
(42) Спасибо. Все получилось.
46 sagitt
 
29.12.21
12:39
(44)Причем и Специалиста и Клиента.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn