Имя: Пароль:
1C
1С v8
ссылка на документ
0 Eeelena
 
23.09.13
09:26
Здравствуйте, подскажите как проверить что номенклатура не ссылается не на один документ Поступление товаров и услуг?
1 Ненавижу 1С
 
гуру
23.09.13
09:27
запросом?
2 Ненавижу 1С
 
гуру
23.09.13
09:27
а как давно Номенклатура стала ссылаться на документы, а не наоборот?
3 Rie
 
модератор
23.09.13
09:30
(0) что-то вроде
ВЫБРАТЬ
    спрНоменклатура.Номенклатура
ИЗ
    Справочник.Номенклатура КАК спрНоменклатура
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК Поступления
ГДЕ
    Поступления.Номенклатура ЕСТЬ NULL
4 Eeelena
 
23.09.13
09:30
МассивНоменклатуры= Новый Массив();
        ТипДокПоступлениеТиУ=Тип("ДокументСсылка.ПоступлениеТоваровУслуг");
        ПриходныйОрдер=Тип("ДокументСсылка.ПриходныйОрдерНаТовары");
        РеализацияТиУ=Тип("ДокументСсылка.РеализацияТоваровУслуг");
        РасходныйОрдер=Тип("ДокументСсылка.РасходныйОрдерНаТовары");

        Запрос=Новый Запрос();
        Запрос.Текст=
        "ВЫБРАТЬ
         |    Номенклатура.Ссылка
         |ИЗ
         |    Справочник.Номенклатура КАК Номенклатура";
        
        РезультатЗапроса=Запрос.Выполнить();
        ВыборкаЗапроса=РезультатЗапроса.Выбрать();
        
        Пока ВыборкаЗапроса.Следующий() Цикл
            //Если ТипЗнч(ТипСсылокПоиска) = ТипЗнч(ВыборкаЗапрос.Ссылка) Тогда
            МассивНоменклатуры.Добавить(ВыборкаЗапроса.Ссылка);
        //КонецЕсли;
        КонецЦикла;    
    
    Для Каждого НайденнаяСсылка Из НайтиПоСсылкам(МассивНоменклатуры) Цикл
        Если (Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(НайденнаяСсылка.Данные)) И ТипЗнч(НайденнаяСсылка.Данные)<>ТипДокПоступлениеТиУ)
            ИЛИ (Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(НайденнаяСсылка.Данные)) И ТипЗнч(НайденнаяСсылка.Данные)<>ПриходныйОрдер)
            ИЛИ (Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(НайденнаяСсылка.Данные)) И ТипЗнч(НайденнаяСсылка.Данные)<>РеализацияТиУ)
            ИЛИ (Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(НайденнаяСсылка.Данные)) И ТипЗнч(НайденнаяСсылка.Данные)<>РасходныйОрдер)  Тогда
            Сообщить(НайденнаяСсылка.Ссылка);
        КонецЕсли;
        
    КонецЦикла;    

я сделала вот так, но это не правильно
5 Ненавижу 1С
 
гуру
23.09.13
09:33
ответ в (3)
6 Eeelena
 
23.09.13
09:34
ок, спасибо
7 Eeelena
 
23.09.13
09:36
а если мне нужно проверить не только поступление товаров и услуг, а еще документ, например Реализация товаров?
8 Ненавижу 1С
 
гуру
23.09.13
09:38
(7)
ВЫБРАТЬ
    спрНоменклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК спрНоменклатура
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК Поступления
ПО спрНоменклатура.Ссылка = Поступления.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Реализация
ПО спрНоменклатура.Ссылка = Реализация.Номенклатура
ГДЕ
    Поступления.Номенклатура ЕСТЬ NULL
и Реализация.Номенклатура ЕСТЬ NULL
9 Ненавижу 1С
 
гуру
23.09.13
09:39
(0) почему нет фото?
10 Eeelena
 
23.09.13
09:41
спасибо еще раз большое)
11 Eeelena
 
23.09.13
09:42
фото обязательно?
12 Rie
 
модератор
23.09.13
09:44
(11) Нет. Но может существенно ускорить получение ответов на задаваемые вопросы (попробуйте оценить половозрастной состав отвечающих) :-)
13 Галахад
 
гуру
23.09.13
09:50
Прикольно. Код в (4) почти рабочий, с небольшой ошибкой.
14 Eeelena
 
23.09.13
09:55
Галахад, что за ошибка?
15 MiniMuk
 
23.09.13
09:59
Номеклатура услугой быть не может? Почему только товары
16 Галахад
 
гуру
23.09.13
10:05
Там такое условие:

   a <> 1 или  a <> 2 или a <> 3 или a <> 4

А оно выполняется при любом "a".
17 Eeelena
 
23.09.13
10:53
тогда надо И вместо ИЛИ?
18 Eeelena
 
23.09.13
10:53
это же будет тоже не правильно
19 Галахад
 
гуру
23.09.13
10:58
Можно так:

НЕ (a = 1 или  a = 2 или a = 3 или a = 4)
20 Eeelena
 
23.09.13
10:59
спасибо большое)))
21 Галахад
 
гуру
23.09.13
11:02
Пожалуйста.
22 catena
 
23.09.13
11:08
"тогда надо И вместо ИЛИ?
это же будет тоже не правильно"

"Можно так:
НЕ (a = 1 или  a = 2 или a = 3 или a = 4)"

"спасибо большое)))"


Чудно)) Улыбает))
23 Галахад
 
гуру
23.09.13
11:11
(22) А что не так?
24 catena
 
23.09.13
12:08
(23)Чем отличаются выражения

НЕ (a = 1 или  a = 2 или a = 3 или a = 4)

и

(a <> 1 и  a <> 2 и a <> 3 и a <> 4)

?
25 Infsams654
 
23.09.13
12:13
Законы де Мо?ргана

    not (P and Q) = (not P) or (not Q)

    not (P or Q) = (not P) and (not Q)
26 Галахад
 
гуру
23.09.13
12:22
(24) А, ну да. Мне первый читабельнее.