Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 19:13

Внешний отчет

Автор ddt, 13 июн 2013, 11:55

0 Пользователей и 1 гость просматривают эту тему.

ddt

Здравствуйте! Нужна помощь с внешним отчетом, изначально было 2 документа по которым формируется отчет, мне нужно добавить в отчет еще один документ. 1С Предприятие 7.7 Столкнулся с проблемами, не знаю как решить. Первая проблема - это как сделать, чтобы отображались продавцы, т.е. чтобы уже имеющаяся колонка (Продавец) в печатной форме  была связана с новым документом. Вторая проблема в том что, в третьем документе есть поле у которого может быть два значения которые должны в печатной форме разноситься по разным колонкам. Отчет прилагается. Может написано не очень понятно, но посмотрев отчет я думаю станет яснее. Новый документ который я добавлял (СписаниеТМЦнаСкладах).... Очень важно сделать этот отчет помогите пожалуйста. 

Herby

для продавца - в строку запроса по аналогии добавьте продавца для нового документа:

|ДокПродавец = Документ.ТТНУниверсальная.Продавец,Документ.СливКваса.ТТНРеализации.Продавец;

по поводу разных значений - не совсем понятно - в чем именно трудности?
поподробней опишите какие реквизиты документа и в какие колонки они должны попадать.

ddt

НА счет продавца не выходит, я думаю потому что тип поля Продавец в первых документах Строка, а в новом документе справочник(Запрос[18] : Переменную описывают различные типы данных). Может подскажете как это решить.По поводу второго, есть документ СписаниеТМЦнаСкладах нужно из реквизита табличной части (Товар) если значение СТАКАН ОДНОР.0,2 занести в столбец стакан 0.2(л) значение реквизита Количество в Кол-во(л) и значение реквизита Сумма в Сумма(л), если значение СТАКАН ОДНОР.0,5 занести в столбец стакан 0.5(л) остальное аналогично.

Herby

Цитата: ddt от 13 июн 2013, 13:33
НА счет продавца не выходит, я думаю потому что тип поля Продавец в первых документах Строка, а в новом документе справочник(Запрос[18] : Переменную описывают различные типы данных). Может подскажете как это решить.

ну тогда не из запроса берите, а уже при выводе строк - из самого нового документа (ну например печПродавец = НовыйДокумент.Продавец)


Цитировать
По поводу второго, есть документ СписаниеТМЦнаСкладах нужно из реквизита табличной части (Товар) если значение СТАКАН ОДНОР.0,2 занести в столбец стакан 0.2(л) значение реквизита Количество в Кол-во(л) и значение реквизита Сумма в Сумма(л), если значение СТАКАН ОДНОР.0,5 занести в столбец стакан 0.5(л) остальное аналогично.

в запрос добавляете переменную и группировку по товару, ну а дальше при выводе строки делаете проверки, которые вы описали.

но только у вас запрос какой-то странный. разве нельзя сделать одну группировку по всем документам, и одну группировку по товару?

просто если вы добавите еще одну группировку по товару нового документа, то, по-моему, у вас на выходе запроса белиберда получится.

ddt

Первая проблема решена, со второй не могу справиться, не хватает знаний, может поможете наглядно строкой кода?

Herby

Цитата: ddt от 14 июн 2013, 09:30
Первая проблема решена, со второй не могу справиться, не хватает знаний, может поможете наглядно строкой кода?

у вас запрос должен быть примерно такой:


|Период с ДатаНач по ДатаКон;
|Док = Документ.ТТНУниверсальная.ТекущийДокумент, Документ.СписаниеТМЦнаСкладах.ТекущийДокумент, Документ.СливКваса.ТекущийДокумент;
|Тов = Документ.ТТНУниверсальная.Товар, Документ.СписаниеТМЦнаСкладах.Товар, Документ.СливКваса.Товар;
|СуммаДок = Документ.ТТНУниверсальная.Сумма, Документ.СписаниеТМЦнаСкладах.Сумма, Документ.СливКваса.Сумма;
|КолвоДок = Документ.ТТНУниверсальная.Количество, Документ.СписаниеТМЦнаСкладах.Количество, Документ.СливКваса.Количество;
|Группировка Док;
|Группировка Тов;

// далее после того, как запрос выполнен, вы обходите эти две группировки:

Пока Запрос.Группировка(1) = 1 Цикл
    тзДляПечати.НоваяСтрока();
    тзДляПечати.НомерТТН = Запрос.Док.НомерДок;
    тзДляПечати.ДатаТТН  = Запрос.Док.ДатаДок;

    Пока Запрос.Группировка(2) = 1 Цикл
        Если Запрос.Товар = "СТАКАН ОДНОР.0,2" Тогда // (СТАКАН ОДНОР.0,2 - это я образно, на его месте должен быть объект товара)
            тзДляПечати.КоличествоСТ2 = тзДляПечати.КоличествоСТ2 + Запрос.КолвоДок;
            тзДляПечати.СуммаСТ2      = тзДляПечати.СуммаСТ2 + Запрос.СуммаДок;
        ИначеЕсли Если Запрос.Товар = "СТАКАН ОДНОР.0,5" Тогда // (СТАКАН ОДНОР.0,5 то же самое что и в предыдущем случае)
            тзДляПечати.КоличествоСТ5 = тзДляПечати.КоличествоСТ5 + Запрос.КолвоДок;
            тзДляПечати.СуммаСТ5      = тзДляПечати.СуммаСТ5 + Запрос.СуммаДок;
        КонецЕсли;

    КонецЦикла;
КонецЦикла;


ddt

Данные все равно не выводятся, отладчик пишет ошибка в выражении. Может я что то не правильно сделал, вот отчет...

Herby

Цитата: ddt от 14 июн 2013, 16:45
Данные все равно не выводятся, отладчик пишет ошибка в выражении. Может я что то не правильно сделал, вот отчет...

вам, действительно наверно, сложно. вам на работе это заказали сделать или в институте?

Вам нужно оставить две группировки Док и Тов. все остальные группировки убирайте и переменные относящиеся к этим остальным группировкам тоже не надо оставлять.

И желательно полный текст ошибки сюда.

и кстати, строка:

Если Запрос.Товар = "СТАКАН ОДНОР.0,2" Тогда


у вас работать не будет, я же в комментарии указал, что я это образно написал.
вместо выражения "СТАКАН ОДНОР.0,2" должно быть значение этого элемента справочника.
Это значение нужно определять через метод НайтиПоКоду, или же в диалоговую форму поместите
два поля с типом справочник.товары, и в этих полях выбираете эти элементы. И у этих полей должны быть соответственно заполнены идентификаторы, например: Стак02, Стак05.
и вот тогда условие будет следующим:


Если Запрос.Товар = Стак02 Тогда
// ....
ИначеЕсли Запрос.Товар = Стак05 Тогда


и таблица врТЗ по идее не нужна. и там проще  все  с нуля переписывать, а иначе
в одном месте сейчас заработает в другом опять что-то всплывет.
Добавлено: 14 июн 2013, 20:13


Я смогу вам нормально написать отчет с нуля, но за бесплатно я не хочу этим заниматься. Хотя бы 1000р. на счет мне сбросите и я все сделаю. от вас файл 1cv7.md и подробное описание что нужно сделать.

ddt

Деньги не проблема))) Но дело в том, что хочется самому разобраться и научиться, может посоветуете литературу по данной теме?

Herby

Цитата: ddt от 18 июн 2013, 09:54
Деньги не проблема))) Но дело в том, что хочется самому разобраться и научиться, может посоветуете литературу по данной теме?

если собираетесь профессионально 1с заниматься, то зачем вам 1С 7.7?
перспективнее 8ку изучать.

вот вам ресурс, прорешаете все примеры, и уже будете немного в теме как что строится и реализуется, ну а дальше все от желания будет зависеть:

http://www.mista.ru/tutor_1c/index.htm  - тут и учебник и примеры простых конфигураций.



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск