20.09.2022 00:47
Ivlen-Wo
 
возникла необходимость программно заполнить некоторые свойства в описании карточки.
smcardproperties.article,
smcardproperties.propid-свойство
smcardproperties.propval - значение(нужно заполнить)
можно использовать почтовик и отправлять необходимое свойство и его значение в xml пакете, но возникает необходимость запросом выбрать все заполненные свойства и их значения, заполнить их в пакете+новое необходимое значение для требуемого свойства(если передать в пакете только одно свойство - остальные затрутся).
по мне так слишком много приседаний для заполнения одного поля, хочу заполнить updat-ом, какие подводные камни могут ожидать?
20.09.2022 03:04
OlegON
 
при том, что ни цель этого, ни что-то ещё ты не указал, в принципе, никаких...
20.09.2022 06:31
Ivlen-Wo
 
цель заполнить описание характеристик карточек не поломав базу.
правильно я понял из мануала что propval ни на что не ссылается и писать в него можно без оглядки?

constraint SMCCardProperties_Card foreign key (Article)
references SMCard(Article) on delete cascade,
constraint SMCCardProperties_PropID foreign key (PropID)
references SACardPropDef(ID) on delete cascade;
20.09.2022 06:57
Mtirt
 
А, чем не устраивает кнопка Обработать в карточках товаров?

Судя по вашим вопросам, лично вам лучше запросом свойства не обновлять.
20.09.2022 09:52
OlegON
 
Цитата:
Ivlen-Wo цель заполнить описание характеристик карточек не поломав базу
заполнить или изменить? действительно, чувствуется слабое понимание происходящего...
чем кнопка "Обработать" не подходит? в базе можно делать что угодно, в принципе, если понимаешь, что делаешь... тут явно такого понимания нет...
и, опять же, описываешь средство решения задачи, а не ее цель...
21.09.2022 12:26
GritsenkoIvan
 
В конце весны поступила задача отобрать и пометить товары по поставщикам по действующим контрактам и соглашениям имея на руках только согласованный список контрагентов с их ИНН. Отбирать их в СМ и проставлять обработкой - такое себе занятие.
Опытным путём выяснил, что в smcardproperties записи необходимо инсёртить. При удалении доп. характеристики из карточки эта запись полностью удаляется. Предварительно необходимо создать доп. характеристику и узнать его propid (если это новая характеристика).

INSERT INTO smcardproperties
(ARTICLE, PROPID, PROPVAL)
SELECT DISTINCT
card.article,
'21',
'sometext'
FROM
smspeccq cq
LEFT JOIN
smdocuments doccq ON doccq.id = cq.docid AND doccq.doctype = 'CQ' AND doccq.docstate = 2
LEFT JOIN
smcommonbases base ON base.id = doccq.id AND base.basedoctype = 'CO' AND base.doctype = 'CQ'
LEFT JOIN
smcontracts co ON co.id = base.baseid
LEFT JOIN
smdocuments docco ON docco.id = co.id AND docco.doctype = 'CO' AND docco.docstate = 3
LEFT JOIN
smclientinfo ci ON ci.id = docco.clientindex
LEFT JOIN
smcard card ON card.article = cq.article
WHERE
ci.inn IN (
'inn_1',
'inn_2',
'inn_n'
)
Часовой пояс GMT +3, время: 17:50.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.