![]() |
|
помогите с условием | ☑ | ||
---|---|---|---|---|
0
dvrk
01.11.21
✎
06:42
|
привет, запросом получаю количество дней просрочки, если >3, то получаю объект контрагент, создаю набор записей значения свойств объектов и создаю там запись с этим контрагентом свойство цвет значение нужный цвет
если >30 то набор с другим цветом, если меньше 3, то набор с пустым значением цвет, как условие написать, что если там есть КонкретныйЦвет, то ничего не делать с ним и вообще подскажите как по-другому правильнее всё это сделать, а то как то коряво делаю Желтый=Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Желтый"); Для каждого Контр из Результат цикл Если Контр.Просрочено > 3 и Контр.Просрочено < 30 и ЗначениеЗаполнено(Контр.Контрагент) Тогда СсылкаКОнтр = Контр.КОнтрагент.ПолучитьОбъект(); видсвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет"); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Прочитать(); Запись.Объект = Контр.Контрагент; Запись.Свойство = ВидСвойства; Запись.Значение = Желтый; Запись.Записать(); СсылкаКонтр.Записать(); как то так |
|||
60
dvrk
10.11.21
✎
14:26
|
и другой вопрос
если у меня иногда в значении может попадаться NULL, я это значение вычитаю, чтобы не было ошибки, я могу в запросе написать выбор когда ЗНАЧЕНИЕ = нулл тогда ЗНАЧЕНИ = 1 иначе ЗНАЧЕНИЕ конец норм? |
|||
61
dvrk
10.11.21
✎
14:30
|
хотя нет, написал так и всё равно NULL, а мне нужно вычитать этот НУЛЛ, как можно сделать чтобы нул был нулём?
|
|||
62
Ёпрст
гуру
10.11.21
✎
14:31
|
(0) ЕстьNULL(,)
|
|||
63
dvrk
10.11.21
✎
14:32
|
(62) не понял
|
|||
64
Ёпрст
гуру
10.11.21
✎
14:32
|
*(62)--->(60)
Но один хрен, РС там не нужен. |
|||
65
dvrk
10.11.21
✎
14:33
|
(64) ВЫБОР
КОГДА ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности = NULL ТОГДА ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности = 1 ИНАЧЕ ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КОНЕЦ что здесь поменять? ну как РС не нужен, если у меня список красится записями РСа |
|||
66
Ёпрст
гуру
10.11.21
✎
14:33
|
(63) возвращает второе значение, если первый операнд = null
|
|||
67
Kassern
10.11.21
✎
14:33
|
(63) ЕстьNULL(Таблица.ВашРеквизитНаПроверкуНул,ЗначениеЕслиВсеЖеНул)
|
|||
68
Ёпрст
гуру
10.11.21
✎
14:33
|
(65) Зачем для покраски списка нужен РС ?
|
|||
69
Kassern
10.11.21
✎
14:34
|
(67) Например ЕстьNull(Таблица.Количество,0) Выдаст либо количество, либо 0, если значение было Null
|
|||
70
Dmitrii
гуру
10.11.21
✎
14:34
|
(60) >> в запросе написать выбор когда ЗНАЧЕНИЕ = нулл тогда ЗНАЧЕНИ = 1 иначе ЗНАЧЕНИЕ конец.
Для этого есть специальная функция языка запросов ЕСТЬNULL(<Значение>, 1). Если <Значение> NULL, вернёт второе значение (в данном случае - 1). Если делать через оператор ВЫБОР, то нельзя сравнивать с NULL. Надо использовать оператор ЕСТЬ NULL.
|
|||
71
dvrk
10.11.21
✎
14:35
|
(68) затем, что всю жизнь здесь список красится так, а условноеоформление мне делать не разрешили
|
|||
72
Kassern
10.11.21
✎
14:35
|
(68) видимо ТС пытается тяжелый запрос выполнять регламентно, чтобы при обновлении списка каждый раз его не делать, а по результату запроса красить строки. Результат решил хранить в РС
|
|||
73
dvrk
10.11.21
✎
14:41
|
(69) это наверное в условии писать нужно, а я в самом поле делаю, наверное (70) подойдёт, пробую
|
|||
74
Ёпрст
гуру
10.11.21
✎
14:42
|
(71) пора что-то менять в консерватории
|
|||
75
dvrk
10.11.21
✎
14:43
|
(74) так мне не разрешили....
|
|||
76
Dmitrii
гуру
10.11.21
✎
14:43
|
(68) >> Зачем для покраски списка нужен РС?
Для ускорения. Если на форме списка каждый раз рассчитывать сроки задолженности (или что он там пытается рассчитать), то работать такой список будет ну оооооочееееееееень меееееееееееедлеееееееннооооооо. Гораздо проще предварительно посчитать нужные данные и куда-нибудь их записать (например, в РС), а потом просто оттуда их брать. Другой вопрос, что проще помещать в РС не цвета, а сами сроки задолженности. А раскрашивать список условным оформлением. Причем можно самому пользователю отдать на откуп вопросы выбора цветов и пусть он хоть на каждый день выберет свой оттенок. Одному пользователю надо две градации - выделить цветом только тех, у кого задолженность больше Х дней. А другому нужен целый светофор - меньше дня, от дня до трёх, от трёх до пяти, от пяти до десяти и т.д. |
|||
77
Ёпрст
гуру
10.11.21
✎
14:43
|
И как это он всю жизнь красится, если ты еще этот огород только городишь ?
|
|||
78
dvrk
10.11.21
✎
14:44
|
(77) руками запись в рс.
|
|||
79
Dmitrii
гуру
10.11.21
✎
14:44
|
(73) Ты дурачок?
Абсолютно идентично
|
|||
80
dvrk
10.11.21
✎
14:45
|
(79) я думал 1ая конструкция для вкладки "Условия" в конструкторе запросов... сори
|
|||
81
MyNick
10.11.21
✎
14:49
|
(68) "Зачем для покраски списка нужен РС ?"
Ну как же зачем. Ведь дублирование данных и рассинхрон с реальными данными - это всё для чувства настоящего геморроя. Начинается "поддержка" этого регистра. Поиск багов. Задания по синхроницации. И т.п. Патаму шта до условного оформления еще погоны одинэсника не набрали достаточное количество звезд. |
|||
82
Dmitrii
гуру
10.11.21
✎
14:50
|
(80) В условиях ГДЕ лучше вообще не использовать ни ЕСТЬNULL ни ВЫБОР КОГДА ЕСТЬ NULL ТОГДА КОНЕЦ.
В условиях лучше написать что-то типа этого.
|
|||
83
MyNick
10.11.21
✎
14:53
|
(72) Кажется, если в базе порядок и последовательность, то дернуть дату > 3 дней по документу задолженности должен выполняться мгновенно. Даже на больших базах.
А если у ТС в базе бардачелло и вместо наведения порядка желают воткнуть хромоногую колесницу, которая по этому бардак-полю будет ездить - их конечно право. Но решение с точки зрения архитектуры идиотское. |
|||
84
MyNick
10.11.21
✎
14:55
|
Я еще не удивлюсь, если у него там этот регистр будут бабки из бухгалтерии руками заполнять. После прокрыживания контрагентов в эксель файле.
|
|||
85
Dmitrii
гуру
10.11.21
✎
14:58
|
(81) Интересно как ты себе представляешь раскраску форму списка справочника контрагентов на лету, где несколько тысяч элементов, у каждого контрагента по несколько договоров и есть задолженность по различным документам.
Пока расчет всего этого счастья для условного оформления будет выполняться на лету, пользователи будут успевать весь кофе в офисе выпить. (83) >> если в базе порядок и последовательность. А это уже зависит от конкретного бизнес-процесса. Если отгрузками занимается один человек (например, отдел продаж), а разнесением оплат - другой (например, бухгалтерия или казначейство), то постоянное изменение данных о сроках оплат - обычная рабочая ситуация, а вовсе не бардак. И да - придётся париться с синхронизацией и постоянной актуализацией данных о сроках. |
|||
86
MyNick
10.11.21
✎
15:02
|
(85) я представляю себе требование красить список на несколько тысяч контрагентов идиотским требованием и извращенной задачей.
Автор бы погрузился в аналитику немного и начал с вопроса - а зачем вообще красить. Кому это надо Для чего Какие решения будут приниматься на основании этой информации И т.д. Красить строки - вообще моветон. В типовых списках нигде ничего не красится. И не нужно этого делать. |
|||
87
dvrk
10.11.21
✎
15:02
|
(86) чтобы видели менеджеры сразу контрагент платит или нет и сколько
|
|||
88
MyNick
10.11.21
✎
15:03
|
Как минимум - это должен быть не динамический список.
А наверняка отчет на СКД, который разделит контриков по группам - в количестве дней задолженности. |
|||
89
dvrk
10.11.21
✎
15:03
|
(82) ВЫБОР
КОГДА ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КОНЕЦ всё равно нул в результате |
|||
90
MyNick
10.11.21
✎
15:04
|
(88) Зачем им это видеть в списке на несколько тысяч контрагентов?
Там же в типовых есть механизм, ограничивающий отгрузку неплательщикам - чем он не устраивает? |
|||
91
Dmitrii
гуру
10.11.21
✎
15:04
|
(86) В целом я с тобой согласен. Меня самого бесят конфигурации, где массово применяется раскрашивание.
Но боюсь, что в данном конкретном случае решает не разработчик, а заказчик. Мало того, заказчик ещё и решает - как именно это должно делаться - через РС, хранящий цвета. |
|||
92
Dmitrii
гуру
10.11.21
✎
15:05
|
(89) Не звизди.
Либо в тексте запроса что-то накосячил, либо не туда смотришь. Чудес не бывает. А ты сейчас пытаешься заявить о свершении чуда Господня на отдельно взятом сервере. |
|||
93
dvrk
10.11.21
✎
15:06
|
(90) я не спорю, всё это есть, но у меня не вышло убедить начальство
|
|||
94
dvrk
10.11.21
✎
15:07
|
(92) да я больше ничего не писал, обработку запускаю и выдаёт ошибку Преобразование значения к типу Число не может быть выполнено
Если (Контр.ПросроченоНа - Контр.ДниОтсрочки) >= 5 и (Контр.ПросроченоНа - Контр.ДниОтсрочки) <= 30 и ЗначениеЗаполнено(Контр.Контрагент) Тогда |
|||
95
MyNick
10.11.21
✎
15:08
|
Я просто не понимаю, ну вот один контр синий, другой зеленый, третий фиолетовый.
Манагер оформляет заказ. Смотрит на этот ЛГБТ флаг в списке (начальство сказало пырить в цвета), и .... принимает решение оформить заказ "в качестве исключения", "в последний раз вот этому контрику, точно в последний", патаму што у менеджера премия зависит от количества заказов ))) |
|||
96
dvrk
10.11.21
✎
15:08
|
(95) это уже не моя проблема
|
|||
97
Dmitrii
гуру
10.11.21
✎
15:09
|
(94) И как этот текст связан с куском текста запроса из (89)?
|
|||
98
MyNick
10.11.21
✎
15:09
|
(96) если фикс, то количество велосипедов это твоя прямая проблема. Ну разве что если валить оттуда не собрался в ближайшее время.
|
|||
99
dvrk
10.11.21
✎
15:10
|
(97) ну вот поле, которое я в 89 пишу это Контр.ДниОтсрочки
|
|||
100
Dmitrii
гуру
10.11.21
✎
15:10
|
(94)+(97) Либо приводи весь код (и запрос и работа с результатами запроса), либо перестань задавать глупые вопросы.
|
|||
101
MyNick
10.11.21
✎
15:10
|
+(96) ты просто не разобрался с требованиями бизнеса. Что конкретно хочет заказчик и как он представляет себе процесс работы с "новым функционалом", насколько это будет эффективно, и какие решения еще можно предложить.
|
|||
102
Dmitrii
гуру
10.11.21
✎
15:11
|
(99) Тебе заказчик запрещает отладчиком пользоваться?
Ты результат запроса можешь посмотреть? |
|||
103
dvrk
10.11.21
✎
15:11
|
(102) я же сказал что в результате запроса НУЛЛ у этого поля
|
|||
104
Dmitrii
гуру
10.11.21
✎
15:12
|
(101) Боюсь, на данном этапе спорить бессмысленно. Автор этот этап уже про*рал.
|
|||
105
Dmitrii
гуру
10.11.21
✎
15:15
|
(103) Еще раз. Этого не может быть, если код из (89) - это именно это поле.
Либо ты не туда смотришь, либо сюда написал не тот код. В поле запроса, полученном из (89) NULL не может быть. Будет всегда либо 0, либо ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности. Другой вопрос, что может быть в ПродажиОбороты.ДокументПродажи.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности у тебя не NULL и не число, а что-то другое (строка, ссылка, булево, ....). |
|||
106
dvrk
10.11.21
✎
15:17
|
(105) сейчас покажу
|
|||
107
dvrk
10.11.21
✎
15:25
|
(105) блин, не успею уже, только когда домой приеду, ну в общем ДопустимоеЧислоДнейЗадолженности это реквизит справочника договорыконтрагентов и он Число, на выходе он почему то NULL, а не ноль
|
|||
108
Kassern
10.11.21
✎
15:27
|
(107) потому что вы не представляете как соединяются таблицы. Если бы у вас было преставления, вы бы не удивлялись null значениям в итоговой таблице...
|
|||
109
Dmitrii
гуру
10.11.21
✎
15:32
|
(108) По логике даже в результате соединения таблиц код из (89) не вернул бы ему NULL.
Автор либо накосячил в тексте запроса, либо смотрит не то поле, либо обрабатывает результат запроса как-то не так, как рассказывает. А может тупо не обновил конфигурацию БД и работает со старым кодом. Отсюда всё равно не видно. А целиком код он не показывает. |
|||
110
Kassern
10.11.21
✎
15:35
|
(109) да дело не в этом куске кода, где он обходит уже нул, а сам факт возникновения нула.
|
|||
111
dvvrk
10.11.21
✎
23:17
|
(110) вот я и не понимаю почему NULL, если это поле - реквизит справочника и тип его Число 10 0
|
|||
112
dvrk
11.11.21
✎
06:39
|
походу нулл изза галочки общие итоги
хз са не ставил ее |
|||
113
dvrk
11.11.21
✎
06:40
|
хотя почему общий итог чисел равен нулл???
|
|||
114
Kassern
11.11.21
✎
09:14
|
(113) " |ИТОГИ
| СУММА(СтоимостьОборот), | СУММА(Просрочено), | СУММА(Неоплачено), | МИНИМУМ(ДатаОплаты), | СРЕДНЕЕ(ПросроченоНа) |ПО | ОБЩИЕ, | Проект ИЕРАРХИЯ, | Контрагент, | ДоговорКонтрагента, | РасчетныйДокумент" О чем это говорит? Как работают итоги в курсе? |
|||
115
Kassern
11.11.21
✎
09:16
|
(113) Дам подсказку. Попробуйте вот такой кусок кода выполнить:
Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, | РеализацияТоваровУслугТовары.Количество КАК Количество, | РеализацияТоваровУслугТовары.Ссылка.Партнер КАК Партнер |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата |ИТОГИ | СУММА(Количество) |ПО | ОБЩИЕ, | Номенклатура, | Ссылка"; Запрос.УстановитьПараметр("Дата",НужнаяДата); Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл КонецЦикла; Что будет в значениях группированных полей, как вы думаете?) |
|||
116
Kassern
11.11.21
✎
09:17
|
почитайте хотя бы это https://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-itogi
|
|||
117
dvrk
17.11.21
✎
08:02
|
(116) спасибо
А ещё вопрос, вот допустим я получаю запросом контрагентов, разукрашиваю их создавая запись в регистре, а как для всех остальных, которые в запрос не попали, создать запись? |
|||
118
dvrk
17.11.21
✎
08:03
|
ну т.е. нужно для всех контрагентов, которых нет в запросе, создать запись в регистре с белым цветом или пустым
|
|||
119
dvrk
17.11.21
✎
08:06
|
или мне проще все записи перед началом обработки делать с пустым цветом, а потом разукрашивать обработкой которые нужно?
|
|||
120
dvrk
17.11.21
✎
08:07
|
ой т.е. делать записи ВСЕХ контрагентов из базы с белым цветом, а потом обработкой нужных разукрасить?
|
|||
121
dvrk
17.11.21
✎
08:17
|
подскажите..
|
|||
122
Мимохожий Однако
17.11.21
✎
09:01
|
ОФФ: Как раскрашивать цветами, если менеджер дальтоник?
|
|||
123
dvrk
18.11.21
✎
08:07
|
чо никто не подскажет?
Дано: Список контрагентов запросом полученных и РС, который перезапишет записи по этим контрагентам, как перезаписать записи контрагентами, которых нет в результате запроса? |
|||
124
dubolom
18.11.21
✎
08:21
|
(123) По какому принципу перезаписывать? Вместо данного контрагента из запроса - какого ставить?
|
|||
125
Ryzeman
18.11.21
✎
08:30
|
(123) Ты не можешь перезаписывать и обрабатывать то, что нигде не получаешь.
Я тебе ещё на первой странице писал, что если хочешь выбрать и перезаписать весь справочник, то надо в запросе выбирать его весь, а свои расчётные данные соединять при помощи ЛЕВОЕ СОЕДИНЕНИЕ. То, что не привяжется обрабатывать через ЕСТЬNULL. Если же в твоей логике перезаписывать и создавать новые записи не обязательно, то можно обрабатывать незаполненные значения во время как "разукрашиваешь" и в коде прописать отсутствующее значение как "белое". |
|||
126
dvrk
18.11.21
✎
08:37
|
(125) вот я и спрашиваю, про отсутствующее значение, то есть запись в РСе есть, пример Контрагент1 - ЦветСписка - Красный
таким он стал в результате прошлого запуска обработки, сегодня контрагент заплатил, обработка отработала, разукрасила всех, кого нужно, но КОнтрагент1 остался красным, его в результате запроса нет, как мне белым его сделать этой же обработкой ? |
|||
127
Ryzeman
18.11.21
✎
09:04
|
(126) Я прекрасно понял твою проблему. Перечитай что я писал (29) и (125). Я написал тебе сразу что у тебя не работает, почему и как это исправить. За тебя твою работу никто никогда выполнять не будет, а направление что искать и куда копать тебе дано. Если не знаешь как писать запросы - почитай статьи\посмотри курсы. Если не знаешь, что такое ЛЕВОЕ СОЕДИНЕНИЕ - изучай соединения. Если ты в принципе не понимаешь что написано в (125), садись учить 1с с начала. Что такое справочники, как хранятся данные, как писать запросы, какие есть типы соединения и т.д.
|
|||
128
dvrk
18.11.21
✎
09:18
|
(127) хорошо, спасибо
|
|||
129
dvrk
18.11.21
✎
09:24
|
(127) ещё вопрос есть, а если я перед окрашиванием буду удалять все записи из РСа?
|
|||
130
Ryzeman
18.11.21
✎
09:57
|
(129) Если под окрашиванием ты имеешь ввиду выполнения твоего расчёта и записи - можно и так, целиком логику своего решения ты нигде не писал. Если ты сможешь потом отсутствующие записи в регистре обработать как белые или какой тебе цвет нужен.
|
|||
131
VladZ
18.11.21
✎
10:15
|
Дичь какая-то. Зачем в регистр писать? Сразу нельзя раскрасить?
|
|||
132
dvrk
18.11.21
✎
10:16
|
(130) я имею ввиду перед всем окрашиванием, я буду получать все записи с окрашиванием - очищать их и после уже моё окрашивание будет отрабатывать
|
|||
133
dvrk
18.11.21
✎
10:16
|
(131) нельзя условное оформление
|
|||
134
dvrk
18.11.21
✎
10:19
|
(130) у меня красятся в 2 цвета все, примерно так я подумал сделать: перед окрашиванием, я получаю запросом все записи с этими цветами, очищаю их и после этого выполняю свою обработку, т.е. старые затираются и в цвете будут только те, которые в обработке раскрасились
|
|||
135
dvrk
18.11.21
✎
10:23
|
просто я сразу не подумал что будет с теми, кто в результат запроса не попадёт, в (130) решает мою проблему же?
|
|||
136
dvrk
23.12.21
✎
08:48
|
делаю заново, запутался
|
|||
137
dvrk
23.12.21
✎
08:48
|
Запрос1 = Новый Запрос;
запрос1.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ПометкаУдаления = ЛОЖЬ"; Результат1 = Запрос1.Выполнить().Выгрузить(); ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет в подборе"); Для Каждого ВсеКонтр из Результат1 Цикл СсылкаКОнтр = ВсеКонтр.Ссылка.ПолучитьОбъект(); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ВсеКонтр.Ссылка; Запись.Свойство = ВидСвойства; запись.Прочитать(); Запись.Объект = ВсеКонтр.Ссылка; Запись.Свойство = ВидСвойства; Запись.Значение = Справочники.ЗначенияСвойствОбъектов.ПустаяСсылка(); Запись.Записать(); КонецЦикла; я этим делаю всех контрагентов без цвета? |
|||
138
dvrk
23.12.21
✎
08:54
|
?????
|
|||
139
Kassern
23.12.21
✎
09:20
|
(138) зачем вы так делаете "запись.Прочитать();"? Если учитесь, то создайте в тестовой базе регистр сведений и попробуйте варианты записи через СоздатьМенеджерЗаписи(); СоздатьНаборЗаписей() СоздатьКлючЗаписи(). Почитайте СП, посмотрите примеры как данные методы работают. Может тогда вы не будете дважды заполнять менеджер записи
|
|||
140
dvrk
23.12.21
✎
09:32
|
(139) ну я видимо не совсем понимаю где я дважды что-то делаю
|
|||
141
Kassern
23.12.21
✎
09:36
|
(140) Вот это зачем?
Запись.Объект = ВсеКонтр.Ссылка; Запись.Свойство = ВидСвойства; запись.Прочитать(); Запись.Объект = ВсеКонтр.Ссылка; Запись.Свойство = ВидСвойства; |
|||
142
Kassern
23.12.21
✎
09:38
|
(140) Если бы вы создавали набор, тогда да, можно было установить отбор по измерениям, а далее прочитать() чтобы этот набор заполнить по отбору. Объясните мне, зачем вы для менеджера записи используете метод Прочитать()?
|
|||
143
dvrk
23.12.21
✎
09:43
|
(142) не знаю, по аналогии с заполнением делал
Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); если запись.Значение = фиолетовый тогда Продолжить; иначе Запись.Объект = СсылкаКОнтр2; Запись.Свойство = ВидСвойства; Запись.Значение = Справочники.ЗначенияСвойствОбъектов.ПустаяСсылка(); Запись.Записать(); КонецЕсли; а так? |
|||
144
Kassern
23.12.21
✎
09:50
|
Вот вам пример из СП:
Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Курс.Валюта = ВыбВалюта; Курс.Период = ТекущаяДата(); Курс.Прочитать(); Если Не Курс.Выбран() Тогда Курс.Период = ТекущаяДата(); Курс.Валюта = ВыбВалюта; Курс.Курс = 41.35; Курс.Кратность = 1; КонецЕсли; Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда Курс.Записать(); КонецЕсли; Здесь Используется 2 метода в связке Прочитать() и Выбран(), чтобы проверить есть ли такая запись или нет. У вас же никакого условия нет, вы тупо создали менеджер 1 раз его заполнили, потом зачем то прочитали и еще раз заново заполнили. |
|||
145
Kassern
23.12.21
✎
09:52
|
(143) "не знаю, по аналогии с заполнением делал" поэтому вам и посоветовал разобраться в вопросе, открыть СП и в тестовой базе попробовать разные варианты записи
|
|||
146
Мимохожий Однако
23.12.21
✎
09:58
|
(143) если запись.Значение = фиолетовый тогда
Продолжить; Это ошибка, т.к. запись еще не отобрана и не прочитана |
|||
147
dvrk
23.12.21
✎
10:03
|
(146) Для Каждого ВсеКонтр из Результат1 Цикл
СсылкаКОнтр2= ВсеКонтр.Ссылка.ПолучитьОбъект(); СсылкаКОнтр = ВсеКонтр.Ссылка.ПолучитьОбъект(); видсвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет в подборе"); Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); Запись.Объект = ВсеКонтр.ссылка; Запись.Свойство = ВидСвойства; Запись.Прочитать(); Если Запись.Выбран() Тогда Если Запись.Значение = Фиолетовый Тогда Продолжить; иначе Запись.Объект = ВсеКонтр.ссылка; запись.Свойство = ВидСвойства; Запись.Значение = ПустойЦвет; Запись.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
148
dvrk
23.12.21
✎
10:13
|
ёмаё не то
|
|||
149
Kassern
23.12.21
✎
10:17
|
(148) сделайте проще, создайте запрос к регистру с проверкой на цвет. Далее уже просто создавайте, или нет менеджер записи с нужными полями без прочитать() и выбран()
|
|||
150
Ryzeman
23.12.21
✎
10:18
|
Запрос1 = Новый Запрос;
запрос1.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Объект, | &ПВХЦвет КАК Свойство, | ВЫБОР | КОГДА ДанныеДляРасчета.ПросроченоНа ЕСТЬ NULL ИЛИ ДанныеДляРасчета.ПросроченоНа = 0 Тогда &Белый | КОГДА ДанныеДляРасчета.ПросроченоНа > 0 И ДанныеДляРасчета.ПросроченоНа <= 3 Тогда &Желтый | КОГДА ДанныеДляРасчета.ПросроченоНа > 3 Тогда &Фиолетовый | КОНЕЦ КАК Значение |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДляРасчета КАК ДанныеДляРасчета | ПО Контрагенты.Ссылка = ДанныеДляРасчета.Контрагент |ГДЕ | Контрагенты.ПометкаУдаления = ЛОЖЬ"; Запрос1.УстановитьПараметр("Белый", ЦветБелый); Запрос1.УстановитьПараметр("Желтый", ЦветЖелтый); Запрос1.УстановитьПараметр("Фиолетовый", ЦветФиолетовый); Запрос1.УстановитьПараметр("ПВХЦвет", ВидСвойства ); Набор = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); Набор.Загрузить(Запрос1.Выполнить().Выгрузить()); Набор.Записать(Истина); Первый запрос кидаешь во временную таблицу ДанныеДляРасчета, затем выполняешь это. Цвета, пороговые значения и обработка null\пустых - сам переделывай. |
|||
151
Kassern
23.12.21
✎
10:20
|
(150) набором удобно, когда надо сразу множество строк в регистре изменить, а если всего 1 то можно менеджеров заполнить.
|
|||
152
Ryzeman
23.12.21
✎
10:21
|
(150)+ Тьфу ты, забыл Набор.Отбор.Свойство.Установить(ВидСвойства);
перед записью. |
|||
153
Ryzeman
23.12.21
✎
10:22
|
(151) тут не в наборе\менеджере проблема. В задаче совокупно. Человек уже 2 месяца мучается... Я ХЗ, за два месяца уже в принципе можно не то, что выучить язык запросов, а разговаривать на нём.
|
|||
154
Kassern
23.12.21
✎
10:26
|
(153) не хочет народ учиться и вникать...
|
|||
155
dvrk
23.12.21
✎
10:26
|
(153) не, я сделал и случайно удалил обработку)
|
|||
156
Kassern
23.12.21
✎
10:27
|
(155) ну раз САМИ сделали, что мешало заново обработку написать?
|
|||
157
dvrk
23.12.21
✎
10:28
|
(156) ну вот раскраску я сделал, а как у всех контрагентов перед раскраской делал белый цвет - не помню
|
|||
158
osa1C
23.12.21
✎
11:34
|
вот это сила... мундира... ветка уже недели две на плаву... неужели нельзя было что-то сделать за это время?
|
|||
159
dvrk
23.12.21
✎
11:49
|
(158) ну вообще то ветка не на плаву и я написал спустя месяц после того как получилось сделать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |