Имя: Пароль:
1C
1С v8
Отчет о продажах (свой)
0 Mastekor
 
11.09.12
10:06
Здравствуйте. Такая вот ситуация надо сделать отчет по опр. контрагентам за опр. период. Список контрагентов находится во внешнем файле. Я сделал аналогичный отчет на базе универсального, подгрузил свой список, все работает, все выводится, но есть один ньюанс. Если за выбранный период у контрагента не было покупок, то он в результаты отчета не попадает. А мне хотелось бы видеть его в списке, пусть данные будут пустые или нули, но, чтобы в списке был. Поскольку сам 1С изучаю не сильно давно, подскажите, в какую сторону мне стоит смотреть?
З.Ы. Может есть какой параметр у универсального отчета, чтобы вывести все результаты или что-нить в этом роде?
З.Ы.2. Запрос я не трогал (если честно, то его в выгруженном мною файле даже нету :()
1 Baker_it
 
11.09.12
10:06
Левое соединение со справочником контрагенты.
2 Baker_it
 
11.09.12
10:07
вернее справочник контрагенты левое соединение с регистром(и) продаж))
3 DrShad
 
11.09.12
10:08
придется трогать запрос
4 kolanych
 
11.09.12
10:10
Настаиваю на правом соединении. Наше дело - правое.
5 Mastekor
 
11.09.12
10:19
Мм... а как тронуть запрос? :) В файлах что у мены выгрузились запроса нет вообще, он где-то в конфигурации
6 DrShad
 
11.09.12
10:29
(5) свой подсунь
7 Mastekor
 
13.09.12
16:11
Нашел текст запроса, вот только он какой-то не такой... :( Никак не пойму, куда и что там подставляить...

ВЫБРАТЬ РАЗРЕШЕННЫЕ
                                                    |    ИсточникДанных.Номенклатура КАК Номенклатура,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура) КАК НоменклатураПредставление,
                                                    |    ИсточникДанных.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление,
                                                    |    ИсточникДанных.ЗаказПокупателя КАК ЗаказПокупателя,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ЗаказПокупателя) КАК ЗаказПокупателяПредставление,
                                                    |    ИсточникДанных.ДоговорКонтрагента КАК ДоговорКонтрагента,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление,
                                                    |    ИсточникДанных.ДокументПродажи КАК ДокументПродажи,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ДокументПродажи) КАК ДокументПродажиПредставление,
                                                    |    ИсточникДанных.Подразделение КАК Подразделение,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Подразделение) КАК ПодразделениеПредставление,
                                                    |    ИсточникДанных.Проект КАК Проект,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Проект) КАК ПроектПредставление,
                                                    |    ИсточникДанных.Организация КАК Организация,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Организация) КАК ОрганизацияПредставление,
                                                    |    ИсточникДанных.Контрагент КАК Контрагент,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Контрагент) КАК КонтрагентПредставление,
                                                    |    ИсточникДанных.Номенклатура.БазоваяЕдиницаИзмерения КАК НоменклатураБазоваяЕдиницаИзмерения,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура.БазоваяЕдиницаИзмерения) КАК НоменклатураБазоваяЕдиницаИзмеренияПредставление,
                                                    |    ИсточникДанных.КоличествоОборот КАК КоличествоОборот,
                                                    |    ИсточникДанных.СтоимостьОборот КАК СтоимостьОборот,
                                                    |    ИсточникДанных.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
                                                    |    ИсточникДанных.НДСОборот КАК НДСОборот,
                                                    |    ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетов,
                                                    |    ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕд,
                                                    |    ВЫБОР
                                                    |        КОГДА ИсточникДанных.СтоимостьБезСкидокОборот = 0
                                                    |            ТОГДА 0
                                                    |        ИНАЧЕ (ИсточникДанных.СтоимостьБезСкидокОборот - ИсточникДанных.СтоимостьОборот) / ИсточникДанных.СтоимостьБезСкидокОборот * 100
                                                    |    КОНЕЦ КАК ПроцентСкидки,
                                                    |    ИсточникДанных.СтоимостьБезСкидокОборот - ИсточникДанных.СтоимостьОборот КАК СуммаСкидки,
                                                    |    ИсточникДанных.Регистратор КАК Регистратор,
                                                    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Регистратор) КАК РегистраторПредставление,
                                                    |    ИсточникДанных.Период КАК Период,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ) КАК ПериодДень,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ) КАК ПериодНеделя,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА) КАК ПериодДекада,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ) КАК ПериодМесяц,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ) КАК ПериодКвартал,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
                                                    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД) КАК ПериодГод
                                                    |{ВЫБРАТЬ
                                                    |    Номенклатура.*,
                                                    |    ХарактеристикаНоменклатуры.*,
                                                    |    ЗаказПокупателя.*,
                                                    |    ДоговорКонтрагента.*,
                                                    |    ДокументПродажи.*,
                                                    |    Подразделение.*,
                                                    |    Проект.*,
                                                    |    Организация.*,
                                                    |    Контрагент.*,
                                                    |    НоменклатураБазоваяЕдиницаИзмерения.*,
                                                    |    КоличествоОборот,
                                                    |    СтоимостьОборот,
                                                    |    СтоимостьБезСкидокОборот,
                                                    |    НДСОборот,
                                                    |    КоличествоЕдиницОтчетов,
                                                    |    КоличествоБазовыхЕд,
                                                    |    ПроцентСкидки,
                                                    |    СуммаСкидки,
                                                    |    Регистратор.* КАК Регистратор,
                                                    |    Период КАК Период,
                                                    |    ПериодДень,
                                                    |    ПериодНеделя,
                                                    |    ПериодДекада,
                                                    |    ПериодМесяц,
                                                    |    ПериодКвартал,
                                                    |    ПериодПолугодие,
                                                    |    ПериодГод}
                                                    |ИЗ
                                                    |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {(Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДокументПродажи).* КАК ДокументПродажи, (Подразделение).* КАК Подразделение, (Проект).* КАК Проект, (Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (Номенклатура.БазоваяЕдиницаИзмерения).* КАК НоменклатураБазоваяЕдиницаИзмерения}) КАК ИсточникДанных
                                                    |{ГДЕ
                                                    |    ИсточникДанных.КоличествоОборот КАК КоличествоОборот,
                                                    |    ИсточникДанных.СтоимостьОборот КАК СтоимостьОборот,
                                                    |    ИсточникДанных.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
                                                    |    ИсточникДанных.НДСОборот КАК НДСОборот,
                                                    |    (ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетов,
                                                    |    (ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕд,
                                                    |    (ВЫБОР
                                                    |            КОГДА ИсточникДанных.СтоимостьБезСкидокОборот = 0
                                                    |                ТОГДА 0
                                                    |            ИНАЧЕ (ИсточникДанных.СтоимостьБезСкидокОборот - ИсточникДанных.СтоимостьОборот) / ИсточникДанных.СтоимостьБезСкидокОборот * 100
                                                    |        КОНЕЦ) КАК ПроцентСкидки,
                                                    |    (ИсточникДанных.СтоимостьБезСкидокОборот - ИсточникДанных.СтоимостьОборот) КАК СуммаСкидки,
                                                    |    ИсточникДанных.Регистратор.* КАК Регистратор,
                                                    |    ИсточникДанных.Период КАК Период,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ)) КАК ПериодДень,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА)) КАК ПериодДекада,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ)) КАК ПериодМесяц,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ)) КАК ПериодКвартал,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
                                                    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД)) КАК ПериодГод}
                                                    |{УПОРЯДОЧИТЬ ПО
                                                    |    Номенклатура.*,
                                                    |    ХарактеристикаНоменклатуры.*,
                                                    |    ЗаказПокупателя.*,
                                                    |    ДоговорКонтрагента.*,
                                                    |    ДокументПродажи.*,
                                                    |    Подразделение.*,
                                                    |    Проект.*,
                                                    |    Организация.*,
                                                    |    Контрагент.*,
                                                    |    НоменклатураБазоваяЕдиницаИзмерения.*,
                                                    |    КоличествоОборот,
                                                    |    СтоимостьОборот,
                                                    |    СтоимостьБезСкидокОборот,
                                                    |    НДСОборот,
                                                    |    КоличествоЕдиницОтчетов,
                                                    |    КоличествоБазовыхЕд,
                                                    |    ПроцентСкидки,
                                                    |    СуммаСкидки,
                                                    |    Регистратор.*,
                                                    |    Период,
                                                    |    ПериодДень,
                                                    |    ПериодНеделя,
                                                    |    ПериодДекада,
                                                    |    ПериодМесяц,
                                                    |    ПериодКвартал,
                                                    |    ПериодПолугодие,
                                                    |    ПериодГод}
                                                    |ИТОГИ
                                                    |    СУММА(КоличествоОборот),
                                                    |    СУММА(СтоимостьОборот),
                                                    |    СУММА(СтоимостьБезСкидокОборот),
                                                    |    СУММА(НДСОборот),
                                                    |    СУММА(КоличествоЕдиницОтчетов),
                                                    |    СУММА(КоличествоБазовыхЕд),
                                                    |    ВЫБОР
                                                    |        КОГДА СУММА(СтоимостьБезСкидокОборот) = 0
                                                    |            ТОГДА 0
                                                    |        ИНАЧЕ (СУММА(СтоимостьБезСкидокОборот) - СУММА(СтоимостьОборот)) / СУММА(СтоимостьБезСкидокОборот) * 100
                                                    |    КОНЕЦ КАК ПроцентСкидки,
                                                    |    СУММА(СуммаСкидки)
                                                    |ПО
                                                    |    ОБЩИЕ
                                                    |{ИТОГИ ПО
                                                    |    Номенклатура.*,
                                                    |    ХарактеристикаНоменклатуры.*,
                                                    |    ЗаказПокупателя.*,
                                                    |    ДоговорКонтрагента.*,
                                                    |    ДокументПродажи.*,
                                                    |    Подразделение.*,
                                                    |    Проект.*,
                                                    |    Организация.*,
                                                    |    Контрагент.*,
                                                    |    НоменклатураБазоваяЕдиницаИзмерения.*,
                                                    |    Регистратор.*,
                                                    |    Период,
                                                    |    ПериодДень,
                                                    |    ПериодНеделя,
                                                    |    ПериодДекада,
                                                    |    ПериодМесяц,
                                                    |    ПериодКвартал,
                                                    |    ПериодПолугодие,
                                                    |    ПериодГод}"
8 FIXXXL
 
13.09.12
16:22
(7) свой запрос, текст которого в УО ставишь покажи
9 Mastekor
 
13.09.12
16:28
Эм, а надо свой запрос с нуля строить? Я думал можно будет подхватить этот запрос и в него вставить что-нить типа

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО ИсточникДанных.Контрагент = Контрагенты.Ссылка
10 Classic
 
13.09.12
16:29
ПРАВОЕ СОЕДИНЕНИЕ :)
11 Mastekor
 
13.09.12
16:32
Ну, как бы суть дела не меняет :(
Список из 10 контрагенто, у 3 нет продаж за сентябрь, в отчете и вижу всего 7. Те троу, у которых ничего не было, в отчет не попали (
12 Classic
 
13.09.12
16:33
(11)
Меняет конечно
Ты в (9) мыслишь правильное, только тебе надо не левое соединение, а правое.
13 Mastekor
 
13.09.12
16:35
Я только что попробовал левое, после правое, после полное, результат отчета одинаковый
14 and2
 
13.09.12
16:37
левое, правое, полное....

пока нет 22 см - все одинаково будет....
15 and2
 
13.09.12
16:44
посмеялся :)
16 shuhard
 
13.09.12
16:48
(13) возьми с ИТС консоль запросов и воткни в неё:
ВЫБРАТЬ
   Контрагенты.Ссылка,
   ПродажиОбороты.КоличествоОборот
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
       ПО ПродажиОбороты.Контрагент = Контрагенты.Ссылка
ГДЕ
   Контрагенты.Покупатель = Истина

и найди 10 отличий
17 Mastekor
 
13.09.12
17:15
Я наверное тупой... Маленькие запросы работают без проблем, и всегда работали, у меня беда конкретно с этим, может я список отбора не там вставляю или ещё какой параметр не задал, но этот запрос у меня не пашет и не меняется. Сейчас он имеет вот такой вид.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
Контрагенты.Ссылка,
//Тут остальная куча всего
|ИЗ
|    Справочник.Контрагенты КАК Контрагенты
|        ПРАВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {(Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (ЗаказПокупателя).* КАК ЗаказПокупателя, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДокументПродажи).* КАК ДокументПродажи, (Подразделение).* КАК Подразделение, (Проект).* КАК Проект, (Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (Номенклатура.БазоваяЕдиницаИзмерения).* КАК НоменклатураБазоваяЕдиницаИзмерения}) КАК ПродажиОбороты
|        ПО Контрагенты.Ссылка = ПродажиОбороты.Контрагент
|ГДЕ
|    Контрагенты.Покупатель = &Истина
|{ГДЕ
|    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
|    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
//И так далее до конца запроса
18 shuhard
 
13.09.12
17:17
(17)[&Истина]
пипец
19 Mastekor
 
13.09.12
17:29
пипец
20 Mastekor
 
13.09.12
17:31
в 1С есть где-нить аналог MSDN? (Про 1С 8.1)
21 shuhard
 
13.09.12
17:51
22 Classic
 
13.09.12
17:54
(17)
Если первым ставишь справочник, то левое
23 Mastekor
 
14.09.12
09:43
А не может влиять на это то, что у меня задан мой отбор?
УниверсальныйОтчет.ДобавитьОтбор("Контрагент.ИНН", Истина, ВидСравнения.ВСписке, ОтборИНН);
Список я заполняю из экселя.
24 Mastekor
 
14.09.12
12:08
Разобрался. Я забыл присвоить текстзапроса построителю, поэтому не было изменений.
Но теперь другой ньюанс. В экселе у меня просто список инн и ряд из них просто отсутствует.
Как мне продолжить таблицу отчета выведя например снизу те инн, что нет в списке контрагентов?
25 shuhard
 
14.09.12
12:15
(24) Объединить Всё

но в постановке задачи что-то не так
если в отчете все контрагенты, то чей ИНН выводить
26 Mastekor
 
14.09.12
12:31
Эм... Ща попробую задачу обрисовать.
Есть эксель, в нем перечислены организации с ИНН. Суть задачи такова:
Сделать за определенный период выборку по продажам этим организациям.
Организация как могла работать с нами, так и попасть в поле нашего зрения впервые.
Соответственно отчет должен иметь в себе данные
1. Организация - сумма продаж за опр. период или по периодам
2. Организация - 0 - это если за этот период не было продаж, но организация есть в нашей базе.
3. ИНН организации - если его нет в нашей базе.

Я решил, что мне подойдет отчет по продажам. сохранил отчет по продажам в файл и начал редактировать.
Задал настройки, подгрузил список инн из экселя. И собственно столкнулся с выше описанными проблемами.

Я просто с 1С всего 5 месяцев знаком из которых 2 ходил на курсы (фиговые кстати), другие языки типа c++, c# знаю хорошо, SQL знаю хорошо.
Если бы это был один из этих языков, то я бы сделал:
1. запрос к базе по ИНН - получил список всех существующих ИНН
2. По существующим ИНН я бы сделал запрос к Продажам за опр. период. - получил бы суммы продаж
3. свел бы в единую таблицу, примерно такого плана
Строки: ИНН найденные в продажах за период - сумма по найденым ИНН
строки: ИНН не найденные в продажах за период - 0
Строки: ИНН из списка не найдены в контрагентах. - "-"

Пытался реализовать подобное в 1С но сказывается нехватка опыта и знаний по тому, как все это реализуется в 1С :(
Вот...
27 shuhard
 
14.09.12
12:36
(26)[, SQL знаю хорошо. ]
ну так напиши запрос в СКД и не парь форуму мозги
28 Mastekor
 
14.09.12
13:25
А не подскажите, где взять СКД для 8.1?
Прошу прощения, если спросил глупость
29 Mastekor
 
14.09.12
13:25
Реально глупость спросил. тема исчерпалась :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан