Имя: Пароль:
1C
 
Как сделать запросом проверку номенклатуры в источнике? Очень нужна помощь.
0 Shecurok
 
30.04.19
16:47
Добрый день всем.
Начну немного с себя: стажируюсь в одной компании (1,5 мес.), в 1с только вникаю. Пытаюсь вот разобраться.
Проблема в следующем: необходимо в документе ПередачаМатериалаВЭксплуатацию (БП3.0) у одного типа номенклатуры поменять СчетДт в зависимости от его доп. сведений (в доп сведениях у номенклатуры (не всей естественно) стоит СчетМЦ05 Истина).
Делаю через ПодпискуНаСобытия. Источником указал документ сам (ПередачаМатериалаВЭксплуатацию), событие ОбработкаПроведения, обработчиком созданный модуль.
Мне надо как то запросом сделать проверку есть ли в Источнике (это сам документ получается) такая номенклатура, у которой в доп.сведениях стоит СчетМЦ05.
Я не могу понять код этого запроса. Дальше думаю уже будет не сложно.
Помощь правда нужна, без необходимости не обращался бы.
1 lodger
 
30.04.19
16:52
а шо там непонятного?
вот у тебя есть Источник в событии. это вроде как документобъект
в этом источнике есть ТЧ с номенклатурой. ее надо выгрузить для запроса допсведений (они ведь в регистре сведений живут?).
обрабатываешь результат запроса, ищешь в движениях указанные позиции и подменяешь счет назначения.
2 Shecurok
 
30.04.19
16:53
(1) Я не знаю каким кодом это сделать :с
3 Nyoko
 
30.04.19
16:53
"ВЫБРАТЬ
|    ПередачаМатериаловВЭксплуатациюСпецодежда.Номенклатура
|ПОМЕСТИТЬ Материалы
|ИЗ
|    Документ.ПередачаМатериаловВЭксплуатацию.Спецодежда КАК ПередачаМатериаловВЭксплуатациюСпецодежда
|ГДЕ
|    ПередачаМатериаловВЭксплуатациюСпецодежда.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ПередачаМатериаловВЭксплуатациюСпецоснастка.Номенклатура
|ИЗ
|    Документ.ПередачаМатериаловВЭксплуатацию.Спецоснастка КАК ПередачаМатериаловВЭксплуатациюСпецоснастка
|ГДЕ
|    ПередачаМатериаловВЭксплуатациюСпецоснастка.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринадлежности.Номенклатура
|ИЗ
|    Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринадлежности
|ГДЕ
|    ПередачаМатериаловВЭксплуатациюИнвентарьИХозяйственныеПринадлежности.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    Материалы.Номенклатура
|ИЗ
|    Материалы КАК Материалы
|ГДЕ
|    Материалы.Номенклатура.ДополнительныеРеквизиты.Значение = &СчетМЦ05"
4 Shecurok
 
30.04.19
16:55
(3) Это правда круто, что написали. Очень круто. Но вот такие ошибки вылезли:
{ОбщийМодуль.СчетМЦ05.Модуль(4,3)}: Неопознанный оператор
     <<?>>"ВЫБРАТЬ (Проверка: Сервер)
{ОбщийМодуль.СчетМЦ05.Модуль(38,70)}: Обнаружено логическое завершение исходного текста модуля
|    Материалы.Номенклатура.ДополнительныеРеквизиты.Значение = &МЦ.05<<?>> (Проверка: Сервер)
5 Shecurok
 
30.04.19
16:58
(3) Тут уже я туплю. Запрос же надо добавить
6 Shecurok
 
30.04.19
17:01
(3) Не помогает. Все так же после проведения стоит МЦ04
7 lodger
 
30.04.19
17:02
(6) результат запроса то как обработал?
8 Shecurok
 
30.04.19
17:05
(7)     Результат=Запрос.Выполнить();

Нет?
9 Shecurok
 
30.04.19
17:08
(7) Немного схитрил. Пока Вы не напомнили мне об этом не было у меня данной команды. После поставил и стала ошибка:

Не задано значение параметра "Ссылка"
ПередачаМатериаловВЭксплуатациюСпецодежда.Ссылка = <<?>>&Ссылка
10 hhhh
 
30.04.19
17:30
(9) напоминаем, перед Запрос.Выполнить()   задай значения всех параметров.