Вход | Регистрация
 

Найти разницу между ТЗ и справочником.

Найти разницу между ТЗ и справочником.
Я
   Kongo2019
 
06.02.20 - 15:48
Доброго.
Найти разницу между ТЗ и справочником.
Есть ТЗ, в ней два поля,
есть справочник, в нем два аналогичных по типу реквизита.
Необходимо найти разницу.
То что есть в ТЗ но нет с справочнике, ТЗ здесь главная.
Никак не соображу какое условие в запросе сделать.
Сравнение по двум полям.
Может кто решал такую задачу?
 
 
   vicof
 
1 - 06.02.20 - 15:50
условие на не равно поставить
   Kongo2019
 
2 - 06.02.20 - 15:52
А фиг тама.
Работает только первый раз.
Потом выдает все на все.
   DTX 4th
 
3 - 06.02.20 - 15:54
А как сейчас выглядит запрос?
   Ненавижу 1С
 
4 - 06.02.20 - 15:54
левое соединение по равенству и условие на Ссылка ЕСТЬ NULL
   H A D G E H O G s
 
5 - 06.02.20 - 15:56
ВЫБРАТЬ
ТЗ.Поле1,
ТЗ.Поле2
ИЗ
ТЗ
ЛевоеСоединение
ТЗ.Поле1=Спр.Поле1 и
ТЗ.Поле2=Спр.Поле2
Где Спр.Поле1 ЕСТЬ NULL
   Garykom
 
6 - 06.02.20 - 15:57
(4) А вот мне больше нравится правое соединение (можно же справочник взять слева а ТЗ справа) и хочешь сказать не выйдет?
   Kongo2019
 
7 - 06.02.20 - 15:57
(3) ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ПОМЕСТИТЬ НоменклатураДата
ИЗ
    &НоменклатураДата КАК НоменклатураДата
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ИЗ
    Справочник.Партия КАК Партия
        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураДата КАК НоменклатураДата
        ПО (НоменклатураДата.Номенклатура <> Партия.Номенклатура)
            И (НоменклатураДата.ДатаПартии <> Партия.ДатаПартии)
   Ненавижу 1С
 
8 - 06.02.20 - 15:57
(6) я не против, но конструктор запроса любит левое
   Garykom
 
9 - 06.02.20 - 15:57
(5) Скосячил
   Garykom
 
10 - 06.02.20 - 15:58
(8) Пофиг на конструктор, главное чтобы sql сервер любил
   H A D G E H O G s
 
11 - 06.02.20 - 16:01
ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ПОМЕСТИТЬ НоменклатураДата
ИЗ
    &НоменклатураДата КАК НоменклатураДата
;

////////////////////////////////////////////////////////////////////////////////


ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ИЗ
    НоменклатураДата КАК НоменклатураДата
        ЛЕВОЕ СОЕДИНЕНИЕ  Справочник.Партия КАК Партия
        ПО (НоменклатураДата.Номенклатура = Партия.Номенклатура)
            И (НоменклатураДата.ДатаПартии = Партия.ДатаПартии)
ГДЕ Партия.Номенклатура ЕСТЬ NULL
   pechkin
 
12 - 06.02.20 - 16:03
(10) Любителям правых соединений - отдельный котел
   Garykom
 
13 - 06.02.20 - 16:05
Я бы так наверно
[/1C]
ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии,
    Партия.Ссылка
ИЗ
    НоменклатураДата КАК НоменклатураДата
        ЛЕВОЕ СОЕДИНЕНИЕ  Справочник.Партия КАК Партия
        ПО (НоменклатураДата.Номенклатура = Партия.Номенклатура)
            И (НоменклатураДата.ДатаПартии = Партия.ДатаПартии)
ГДЕ Партия.Ссылка ЕСТЬ NULL
[/1C]
Но почему хз
   Kongo2019
 
14 - 06.02.20 - 16:07
(11) Что-то пусто на выходе.
   Kongo2019
 
15 - 06.02.20 - 16:08
(13) То же не сработало.
   piter3
 
16 - 06.02.20 - 16:09
(15) Хм,что бы до 100 ветки не доходить,а сам глазами видел в базе нужные входные данные?
   Garykom
 
17 - 06.02.20 - 16:10
(15) Убери условие 
ГДЕ Партия.Ссылка ЕСТЬ NULL

И глянь что выводит
   Kongo2019
 
18 - 06.02.20 - 16:12
(16) Выдел.
   Garykom
 
19 - 06.02.20 - 16:13
(18) У всех ссылка заполнена?
   Kongo2019
 
20 - 06.02.20 - 16:15
(17)Пусто, Пусто, Элемент из справочника.
Весь справочник.
Сейчас кеш почищу
   Garykom
 
21 - 06.02.20 - 16:19
(20) Ты чего то скосячил, при левом из (13) должна выводиться вся ТЗ и к каждой строчке подбираться из справочника или пусто.
Никаких пустых Номенклатура и ДатаПартии не должно быть
   Kongo2019
 
22 - 06.02.20 - 16:21
(21)Согласен.
Да вот блин три строчки, косяка не вижу.
   Kongo2019
 
23 - 06.02.20 - 16:32
(21) Нашел косяк. Соединение было неправильно.
   Kongo2019
 
24 - 06.02.20 - 16:37
Теперь пофигу есть условие или нет.
Теперь выводится
Номенклатура, дата, пустое полк
и так вся ТЗ.
походу с датой что-то не так.
В запросе дата так - 11.09.2015 0:00:00
а в реквизите просто - 11.09.2015
   H A D G E H O G s
 
25 - 06.02.20 - 16:43
(24) ну там секунды не показываются
   H A D G E H O G s
 
26 - 06.02.20 - 16:43
или тупо строка небось
   pechkin
 
27 - 06.02.20 - 16:45
(26) если выборка пуста, то получаетс все партии есть
   Kongo2019
 
28 - 06.02.20 - 16:45
(26)Нет. В реквизите  тип - дата, состав дата - дата. То бишь в реквизите времени нет.
может поэтому?
   Said_We
 
29 - 06.02.20 - 16:46
Даты приведи к началу периоду НАЧАЛОПЕРИОДА(ДатаПартии , ДЕНЬ)
   Said_We
 
30 - 06.02.20 - 16:46
Обе даты
 
 Рекламное место пустует
   Kongo2019
 
31 - 06.02.20 - 16:46
(27) Выборка вот сейчас тупо выводить мое ТЗ. и пустое поле Ссылка.
   Said_We
 
32 - 06.02.20 - 16:50
(31) Так такое условие и поставил
ГДЕ Партия.Ссылка ЕСТЬ NULL
   Kongo2019
 
33 - 07.02.20 - 09:12
(32) Ну так какое порекомендовали такое и вставил.
   Kongo2019
 
34 - 07.02.20 - 09:13
(29) Ну получается. Даже с одной
Неверные параметры "НАЧАЛОПЕРИОДА"
И НАЧАЛОПЕРИОДА(<<?>>НоменклатураДата.ДатаПартии, День) = Партия.ДатаПартии
   catena
 
35 - 07.02.20 - 09:23
(34)Не дата в таблице, видимо
   Kongo2019
 
36 - 07.02.20 - 09:31
(35) Ну да, это я делал в консоли, пакет инструменты разработчика.
Загнал в код, ошибки нет.
Но все равно выводится тупо моя таблица значений.
   crasler
 
37 - 07.02.20 - 09:31
ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ПОМЕСТИТЬ НоменклатураДата
ИЗ
    &НоменклатураДата КАК НоменклатураДата
;

////////////////////////////////////////////////////////////////////////////////


ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ИЗ
    НоменклатураДата КАК НоменклатураДата
ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)
   В (ВЫБРАТЬ Номенклатура, ДатаПартии ИЗ Справочник.Партия)
   Kongo2019
 
38 - 07.02.20 - 09:33
Вот писание мой ТЗ, может тут косяк?
тзНоменклатураДата = Новый ТаблицаЗначений;
тзНоменклатураДата.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
тзНоменклатураДата.Колонки.Добавить("ДатаПартии", Новый ОписаниеТипов("Дата"));
   Kongo2019
 
39 - 07.02.20 - 09:40
(37) Это ты что-то жесткое предложил.
Получаю окошко.
Ошибка SDBL:
Вложенный результат в запросе, вложенном в IN 
И две кнопки
Завершить работу, Перезапустить.
   crasler
 
40 - 07.02.20 - 09:47
(39) А так

ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ПОМЕСТИТЬ НоменклатураДата
ИЗ
    &НоменклатураДата КАК НоменклатураДата
;
ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ПОМЕСТИТЬ Партия ИЗ Справочник.Партия КАК А
;
ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ИЗ
    НоменклатураДата КАК НоменклатураДата
ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)
   В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ Партия КАК А)
   Kongo2019
 
41 - 07.02.20 - 09:50
(40) Таблица не найдена "Партия"
В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ <<?>>Партия КАК А)
   crasler
 
42 - 07.02.20 - 09:57
(41) А так, менеджер временных таблиц установлен?
(39) А так

ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ПОМЕСТИТЬ НоменклатураДата
ИЗ
    &НоменклатураДата КАК НоменклатураДата
;
ВЫБРАТЬ А.Номенклатура, А.ДатаПартии
ПОМЕСТИТЬ Партии
ИЗ
    Справочник.Партия КАК А
;
ВЫБРАТЬ
    НоменклатураДата.Номенклатура,
    НоменклатураДата.ДатаПартии
ИЗ
    НоменклатураДата КАК НоменклатураДата
ГДЕ НЕ (НоменклатураДата.Номенклатура, НоменклатураДата.ДатаПартии)
   В (ВЫБРАТЬ А.Номенклатура, А.ДатаПартии ИЗ Партии КАК А)
   Said_We
 
43 - 07.02.20 - 10:01
(34) Тебе написали в (35) что не дата у тебя там. Посмотри что. Какой тип?
   Kongo2019
 
44 - 07.02.20 - 10:04
(43) Дата, проверил.
в (38) описание моей ТЗ.
   catena
 
45 - 07.02.20 - 10:06
(36)Давай итоговый запрос на данный момент и еще раз внятно, чего хочешь.
   Said_We
 
46 - 07.02.20 - 10:07
(44) Картинку покажи, где видно что дата.
   1Сергей
 
47 - 07.02.20 - 10:09
(44) а в справочнике?
   Kongo2019
 
48 - 07.02.20 - 10:17
Блин, какая-то магия.
Текущий запрос
"ВЫБРАТЬ
                   |    НоменклатураДата.Номенклатура,
                   |    НоменклатураДата.ДатаПартии
                   |ПОМЕСТИТЬ НоменклатураДата
                   |ИЗ
                   |    &НоменклатураДата КАК НоменклатураДата
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    НоменклатураДата.Номенклатура КАК Номенклатура,
                   |    НоменклатураДата.ДатаПартии КАК ДатаПартии,
                   |    Партия.Ссылка
                   |ИЗ
                   |    НоменклатураДата КАК НоменклатураДата
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партия КАК Партия
                   |        ПО НоменклатураДата.Номенклатура = Партия.Номенклатура
                   |            И (НАЧАЛОПЕРИОДА(НоменклатураДата.ДатаПартии, ДЕНЬ) = НАЧАЛОПЕРИОДА(Партия.ДатаПартии, ДЕНЬ))
                   |ГДЕ
                   |    Партия.Ссылка ЕСТЬ NULL";

Добавил только 
Партия.Ссылка и все заработало.
Почему так?
   Kongo2019
 
49 - 07.02.20 - 10:18
(47) В реквизите  тип - дата, состав дата - дата. То бишь в реквизите времени нет
   Said_We
 
50 - 07.02.20 - 10:32
(49) Дата со временем и дата без времени, это в общем случае две разные даты.
   Kongo2019
 
51 - 07.02.20 - 10:36
(50) Логично, но блин начал запрос корено работать не тогда когда я дата привел к одному.
А добавил поле.
Партия.Ссылка
   Said_We
 
52 - 07.02.20 - 10:42
(52) А если сейчас убрать, то перестанет работать?
   Kongo2019
 
53 - 07.02.20 - 10:50
(52) Ага, выводит всю мою ТЗ.
   catena
 
54 - 07.02.20 - 10:55
(53)Не верю. Скрин покажи
   Kongo2019
 
55 - 07.02.20 - 11:00
(54) Сам в шоке. Чего скрин показать?
   Kongo2019
 
56 - 07.02.20 - 11:01
(13) Мне вот тут тоже так предлагали делать.
   Said_We
 
57 - 07.02.20 - 11:03
(55) В СКД делаешь или в консоле обычной?
   Kongo2019
 
58 - 07.02.20 - 11:06
(57)В консоли давал ошибку см на (34). Поэтому я сделал обработку, вынес туда этот кусок, и выводил результат через Сообщить.
   Said_We
 
59 - 07.02.20 - 11:09
Ошибка могла быть из-за ТЗ. Как её в консоль запихивал?
   Kongo2019
 
60 - 07.02.20 - 11:13
(59) В параметры, там есть такая возможность, загрузить из файла.
Я понял, что она там как текст грузилась. Поэтому и ушёл код в обработке отлаживать.
   Said_We
 
61 - 07.02.20 - 11:24
(60) Если как текст, то поэтому и дата это совсем не дата. Поэтому и не отработало НАЧАЛОПЕРИОДА().
Для теста можно было несколько строк загнать руками в консоле в ВТ "НоменклатураДата":
ВЫБРАТЬ &Номенклатура1 как Номенклатура, ДатаВремя(2020,2,7) КАК ДатаПартии Поместить НоменклатураДата
Объединить все &Номенклатура2, ДатаВремя(2020,1,4)
Объединить все &Номенклатура3, ДатаВремя(2019,12,17);
   Kongo2019
 
62 - 07.02.20 - 11:49
(61) Об этом я не подумал. Спасибо.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.