Имя: Пароль:
JOB
Работа
Тестовое задание
🠗 (Лефмихалыч 23.08.2016 15:26)
,
0 Вебер
 
23.08.16
14:24
При приеме на работу дали тестовые задания, 2 сделал сразу. А 3 разрешили сделать дома.запросам Из регистра накопления продаж найти товары которые подорвались в течении 7 дней. Понимаю что надо использовать ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -7) Но как дальше не знаю. Может кто поможет, подскажет ?
1 Горогуля
 
23.08.16
14:24
не дальше, а вокруг. опиши своё решение русскими словами
2 Горогуля
 
23.08.16
14:25
и такое отдали на дом... мда... мне страшно за беседующее
3 PR
 
23.08.16
14:25
(0) А на кого устраиваешься?
4 Вебер
 
23.08.16
14:25
(1)
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Период КАК Период,
    ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -7) КАК Поле1
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНП, &ДатаКп, Запись, Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры) КАК ПродажиОбороты
ГДЕ
    ПродажиОбороты.Номенклатура = &Номенклатура

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
5 Beduin
 
23.08.16
14:25
(0) Так может проще период задать сразу
6 piter3
 
23.08.16
14:25
Подряд?
7 Вебер
 
23.08.16
14:26
сервис-инженер
8 Горогуля
 
23.08.16
14:26
>которые подорвались в течении 7 дней
просраченные консервы штоль?
9 Вебер
 
23.08.16
14:27
(2) на дом дали потому что, сделал решение по неделям, а им надо по 7 дням
10 Вебер
 
23.08.16
14:29
не ужели нет знатоков ???
11 Горогуля
 
23.08.16
14:29
(9) семь дней кряду? хоть раз за семь дней?
12 Господин ПЖ
 
23.08.16
14:29
(10) з/п тоже напополам с мистой?
13 Вебер
 
23.08.16
14:30
(11) да
14 Горогуля
 
23.08.16
14:30
(10) ты словами расскажи. а мы подскажем, как по-научному, если что
15 Вебер
 
23.08.16
14:31
(14) если сегодня вторник то -7 до предыдущего вторника, в течении этих дней надо проследить продажу товара
16 Beduin
 
23.08.16
14:31
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.Период КАК Период,
    ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -7) КАК Поле1
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНП, &ДатаКп, Запись, Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры) КАК ПродажиОбороты
ГДЕ
    ПродажиОбороты.Номенклатура В (
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура
ИЗ
    РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -1), ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -8), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры))

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
17 чувак
 
23.08.16
14:32
(15) тебя спрашивают - в течении 7 дней ежедневно или хот один раз продали?
18 Вебер
 
23.08.16
14:32
(17) да
19 Вебер
 
23.08.16
14:33
1 раз продали за 7 дней
20 Горогуля
 
23.08.16
14:33
(18) красавец!
21 Горогуля
 
23.08.16
14:33
(19) обороты за период дата, дата-7дней
22 Вебер
 
23.08.16
14:33
(20) ?
23 Это_mike
 
23.08.16
14:33
"найти товары которые подорвались в течении 7 дней" - пардон, чем они торгуют?
24 Beduin
 
23.08.16
14:34
(23) Это для Сирии
25 Это_mike
 
23.08.16
14:34
(7) между словами - знак "минус"?
26 Это_mike
 
23.08.16
14:34
(24) для какой из сторон?
27 Горогуля
 
23.08.16
14:34
(23) или брагу гонят
28 Вебер
 
23.08.16
14:35
(21) это условия для регистра ?
29 Горогуля
 
23.08.16
14:35
(28) ага
30 Горогуля
 
23.08.16
14:36
я понял! это - фейерверки. зарплата продукцией. день получки - праздник во всём дворе
31 Вебер
 
23.08.16
14:40
(16)  неверные параметры
32 Горогуля
 
23.08.16
14:43
(31) печаль, да? не скопипастилося
33 PR
 
23.08.16
14:43
(31) Мдааа. Может не стоит тебе в программисты?
34 Вебер
 
23.08.16
14:45
(32) (ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -1), ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -8), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры)

вот такую конструкцию впервые увидел
35 Вебер
 
23.08.16
14:46
(33) может ты прав, а разве сидеть в админах лучше?
36 Горогуля
 
23.08.16
14:49
(34) отлично! будет, что почитать
37 Горогуля
 
23.08.16
14:49
(35) на программиста учатся пять лет
38 Beduin
 
23.08.16
14:50
(34) а так
(ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -8), ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -1), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры)
39 hhhh
 
23.08.16
14:50
(35) лучше из дворников идти. У дворника незамутненное сознание, да и работает на свежем воздухе. Быстро переучится.

А из админов очень тяжело попасть в 1с-ники, и них мозги вывернуты совсем в другую сторону. Очень трудно перестроить.
40 Вебер
 
23.08.16
14:52
(38) Поле не найдено ПродажиОбороты.Период
41 Это_mike
 
23.08.16
14:53
(37) брось...
42 hhhh
 
23.08.16
14:55
(ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, -8), ДОБАВИТЬКДАТЕ(Период, ДЕНЬ, -1), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры)
43 Горогуля
 
23.08.16
14:55
(40) это от выключенной периодичности
44 Fedor-1971
 
23.08.16
14:55
(35) кому как нравится.
    РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -1), ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -8), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры)) - вот это словами: "И чего тебе надобно старче?" Ты пытаешься выбрать данные за какой период (из записи регистра выбираешь дату и её уменьшаешь)?

(38) в угадайку играем?

Словами: Выбрать ВСЕ продававшиеся товары за 7 дней
Выбрать различные
прод.Номенклатура
из РегистрНакопления.Продажи.Обороты(&НачПериода, ДОБАВИТЬКДАТЕ(&НачПериода, ДЕНЬ, -7), ,) как прод

Начни с книжки по 1С, а не с собеседования
45 Горогуля
 
23.08.16
14:55
(42) а, ну или да
46 Fedor-1971
 
23.08.16
14:59
44+ Пойми что делаешь, и будет тебе счастье.
Вроде из админов и должен мыслить чётко в квадратном измерении без полутонов и пытаться разобраться в применяемых инструментах. Format c: /C - знаешь что сделает с виндой?
47 Вебер
 
23.08.16
15:00
(43) как включить периодичность???
48 Вебер
 
23.08.16
15:00
(46) зависит от того какая винда
49 Nuobu
 
23.08.16
15:01
(48) Ух ты! И правда админский ответ.
(47) Тумблером.
50 Beduin
 
23.08.16
15:05
(47) В коррелированный подзапрос нельзя передать в виртуальную таблицу параметр из внешнего запроса
51 Beduin
 
23.08.16
15:05
(47) Делай короче соединением
52 Fedor-1971
 
23.08.16
15:06
(48) с правами админа, на сколько я знаю, любая
А по сути твоего вопроса пробовал (44)? И как ты сделал по неделям?
53 Fedor-1971
 
23.08.16
15:07
(51) дай человеку разобраться с прямой выборкой, соединения будут позже.
54 Вебер
 
23.08.16
15:12
(52) по неделям сделал так

ЗАПРОС =НОВЫЙ ЗАПРОС;
        Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
        Запрос.Текст=                
        "ВЫБРАТЬ
        |    ТЗ.НачИнтервала,
        |    1 КАК Поле1
        |ПОМЕСТИТЬ ТЗ2
        |ИЗ
        |    &ТЗ КАК ТЗ
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ТЗ2.НачИнтервала КАК НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, "+Интервал+") КАК Поле2,
        |    СУММА(ВЫБОР
        |            КОГДА ВложенныйЗапрос.Период1 = &ДатаНП
        |                ТОГДА ВложенныйЗапрос.СуммаОборот
        |            ИНАЧЕ ВЫБОР
        |                    КОГДА ВложенныйЗапрос.Период1 <= ТЗ2.НачИнтервала
        |                        ТОГДА ВложенныйЗапрос.СуммаОборот
        |                    ИНАЧЕ 0
        |                КОНЕЦ
        |        КОНЕЦ) КАК Поле1,
        |    ВложенныйЗапрос.Поле1 КАК Поле11,
        |    ТЗ2.Поле1 КАК Поле12
        |ИЗ
        |    ТЗ2 КАК ТЗ2
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ПродажиОбороты.Номенклатура КАК Номенклатура,
        |            НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, "+Интервал+") КАК Период1,
        |            ПродажиОбороты.СуммаОборот КАК СуммаОборот,
        |            1 КАК Поле1
        |        ИЗ
        |            РегистрНакопления.Продажи.Обороты(&ДатаНП, &ДатаКп, "+Интервал+", Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры) КАК ПродажиОбороты
        |        ГДЕ
        |            ПродажиОбороты.Номенклатура = &Номенклатура) КАК ВложенныйЗапрос
        |        ПО ТЗ2.НачИнтервала = ВложенныйЗапрос.Период1
        |
        |СГРУППИРОВАТЬ ПО
        |    ТЗ2.НачИнтервала,
        |    ВложенныйЗапрос.Номенклатура,
        |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период1, "+Интервал+"),
        |    ВложенныйЗапрос.Поле1,
        |    ТЗ2.Поле1
        |
        |УПОРЯДОЧИТЬ ПО
        |    НачИнтервала УБЫВ";
55 Вебер
 
23.08.16
15:13
и  Неделька.Итог("Поле11")=Неделька.Итог("Поле12")
56 Вебер
 
23.08.16
15:15
(52) Поле не найдено ПродажиОбороты.Период если сделать РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -1), ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, ДЕНЬ, -8), , Номенклатура.ВидНоменклатуры <> &ВидНоменклатуры)) , не пойму что там указать что бы такая конструкция заработала?
57 xXeNoNx
 
23.08.16
15:15
(0) Смысла нет.
скока решал 2 задачи?
58 VladZ
 
23.08.16
15:16
(0) Забей. Не твое это.
59 Вебер
 
23.08.16
15:17
(57) 3 часа
60 Господин ПЖ
 
23.08.16
15:17
(54) признавайся откуда свистнул код?
61 Вебер
 
23.08.16
15:19
свиснул только вот это

Функция ПолучитьТаблицуДатЗаПериод(НачДата, КонДата, Интервал)

    тзИнтервалов = Новый ТаблицаЗначений;
    тзИнтервалов.Колонки.Добавить("НачИнтервала", Новый ОписаниеТипов("Дата"));

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |НАЧАЛОПЕРИОДА  (&НачДата, День) КАК НачИнтервала
    |УПОРЯДОЧИТЬ ПО
    |   НачИнтервала
    |ИТОГИ ПО
    |   НачИнтервала ПЕРИОДАМИ("+Интервал+", &НачДата, &КонДата)";
    //Параметры запроса
    Запрос.УстановитьПараметр("НачДата", НачДата);
    Запрос.УстановитьПараметр("КонДата", КонДата);

    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НачИнтервала", "ВСЕ");
    Пока Выборка.Следующий() Цикл
        НоваяСтрока = тзИнтервалов.Добавить();
        НоваяСтрока.НачИнтервала = Выборка.НачИнтервала;
    КонецЦикла;

    Возврат  тзИнтервалов;

КонецФункции //Пол
62 xXeNoNx
 
23.08.16
15:19
(59) Смысла нет...
Помнишь первые задачи?
Как они звучали...
63 Nuobu
 
23.08.16
15:19
(59) А что это были за задачи?
64 Вебер
 
23.08.16
15:21
добавить в поле справочника колонку с остатками с просмотром только определенной роли
65 Вебер
 
23.08.16
15:21
(64) в список справочника
66 Горогуля
 
23.08.16
15:23
как решил?
67 Zixxx
 
23.08.16
15:23
В течении 7 дней
Подряд или Последние?
68 Горогуля
 
23.08.16
15:24
(67) просто за период
69 zak555
 
23.08.16
15:24
(54) зачем вложенные запросы ?
70 azernot
 
23.08.16
15:24
>семь дней кряду? хоть раз за семь дней?
> да

>тебя спрашивают - в течении 7 дней ежедневно или хот один раз продали?
> да


Напомнило баш

Она: ответь мне, только честно, да или нет, хорошо?
Он: спрашивай
Она: почему мужчины смеются над блондинками?
Он: да
71 Лефмихалыч
 
23.08.16
15:24
>товары которые подорвались в течении 7 дней
это как понять?

Товары, которые были проданы в период с первого по седьмое?
Товары, у которых были продажи 7 дней подряд каждый день?
72 Вебер
 
23.08.16
15:25
Процедура СписокПриПолученииДанных
    Если ОформлениеСтроки.ДанныеСтроки.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;        
        ЗапросОстатков=Новый Запрос;    
        ЗапросОстатков.Текст="ВЫБРАТЬ
        |    ОстаткиТоваровКомпанииОстатки.Номенклатура,
        |    СУММА(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) КАК Количество,
        |    СУММА(ОстаткиТоваровКомпанииОстатки.РезервОстаток) КАК Резерв,
        |    СУММА(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток - ОстаткиТоваровКомпанииОстатки.РезервОстаток) КАК Остаток,
        |    СУММА(ВЫБОР
        |            КОГДА ОстаткиТоваровКомпанииОстатки.СкладКомпании.Розничный
        |                    И НЕ ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток, 0) = 0
        |                ТОГДА ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток / ОстаткиТоваровКомпанииОстатки.КоличествоОстаток
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК ЦенаРозничная
        |ИЗ
        |    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(,Номенклатура В (&СписокНоменклатур)) КАК ОстаткиТоваровКомпанииОстатки
        |
        |СГРУППИРОВАТЬ ПО
        |    ОстаткиТоваровКомпанииОстатки.Номенклатура";            
        СписокНоменклатур.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);
        ЗапросОстатков.УстановитьПараметр("СписокНоменклатур",СписокНоменклатур);
        РезультатЗапроса=ЗапросОстатков.Выполнить();
        Если НЕ РезультатЗапроса.Пустой() Тогда
            Выборка=РезультатЗапроса.Выбрать();
            Выборка.Сбросить();
            ОформлениеСтроки.Ячейки.Количество.ОтображатьТекст=Истина;
            ОформлениеСтроки.Ячейки.ЦенаРозничная.ОтображатьТекст=Истина;
            Если Выборка.НайтиСледующий(ОформлениеСтроки.ДанныеСтроки.Ссылка,"Номенклатура") Тогда
                ОформлениеСтроки.Ячейки.Количество.Текст=Выборка.Остаток;
                ОформлениеСтроки.Ячейки.ЦенаРозничная.Текст=Выборка.ЦенаРозничная;
            КонецЕсли;
        КонецЕсли;
73 Горогуля
 
23.08.16
15:25
(72) где роль?
74 Лефмихалыч
 
23.08.16
15:26
так, тут всё ясно
75 Fedor-1971
 
23.08.16
15:26
(56) блин, где в моём запросе такие слова?
Что-бы заработало надо во временную таблицу с названием ПродажиОбороты выбрать поле Период

Обороты(<НачалоПериода>, <КонецПериода>, <Отбор>) - соотнеси со своим кодом
76 Господин ПЖ
 
23.08.16
15:26
>Товары, у которых были продажи 7 дней подряд каждый день

http://s.pikabu.ru/post_img/2012-12_6/1356680243_680811805.jpg
77 Горогуля
 
23.08.16
15:26
СУММА() КАК ЦенаРозничная - это просто праздник какой-то
78 Горогуля
 
23.08.16
15:28
(0) короче, тебя не взяли, и правильно сделали. правильно в том числе и для тебя
79 Вебер
 
23.08.16
15:28
(76)  1 раз в течении 7 дней
80 Вебер
 
23.08.16
15:28
(77) а что не так в этом?
81 Вебер
 
23.08.16
15:29
(75) поставил период, но не работает
82 Горогуля
 
23.08.16
15:30
(80) сейчас дойдёт, погоди пару минут
83 Вебер
 
23.08.16
15:31
(75) Спасибо
84 azernot
 
23.08.16
15:31
>Из регистра накопления продаж найти товары которые подорвались в течении 7 дней

Мне одному кажется, что ответ очевиден?


ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПродажиОбороты.Номенклатура
ИЗ
    РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&НужнаяДата, ДЕНЬ, -7), ДЕНЬ), КОНЕЦПЕРИОДА(&НужнаяДата, ДЕНЬ), , ) КАК ПродажиОбороты


Или нужны некие ЛЮБЫЕ 7 дней по всей базе?
85 Nuobu
 
23.08.16
15:32
(84) Нет, я тоже так думаю.
86 Горогуля
 
23.08.16
15:34
(84) не одному. автору нужна версия, годная для копипаста. желательно с обходом
87 Лефмихалыч
 
23.08.16
15:34
(84) неправильно. Нужно выбирать из оборотов регистра ПодрывТоваров
88 Garykom
 
гуру
23.08.16
15:35
>...найти товары которые подорвались...

Шо террористы на складе?
89 Garykom
 
гуру
23.08.16
15:35
(87) зараза опередил ((
90 azernot
 
23.08.16
15:41
(87) Ну, в этом случае проще напрямую в запросе использовать конструкцию

Номенклатура.ТоварыПодрывалисьВТечениеСемиДней = Истина

в отборе виртуальной таблицы...
:)