Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 02:00
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Результат в отчете по столбцам  (Прочитано 1216 раз)

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

Оффлайн GShutter

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-08-20
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте, подскажите пожалуйста как можно решить данную проблему:
У меня на данный момент отчет выводит как показано на первых 2х картинках (макет отчета и результат). Но таковой отчет крайне неприятен и я хотел бы его сделать в 3 столбца по группам, я пытался создать три параметра как показано на 3 картинке и передать туда значения, но результат(картинка 4) крайне плох, сперва заполняется 1 столбец при этом 2 других пустые, потом начинает заполняться другой столбец, при этом  тот который уже заполнен продолжает заполняться последним значением. Помогите пожалуйста разобраться, я только обучаюсь, не пойму как решить данную проблему, а оставлять в первом виде в 2 колонки очень уж не хочется.   


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Я не пойму, как хочется то?

Оффлайн Natain14

  • **
  • Сообщений: 55
  • РЕПУТАЦИЯ: 2
  • КПД: 4%
  • Регистрация: 2015-06-16
  • Сайт: 
Если я правильно поняла, то скорее всего проблема в цикле, которым вы заполняете. Вам надо заполнять все три параметра сразу, а на третьем выводить область. Думаю можно установить счетчик, например, хотя вариантов несколько...:

ТабДокумент = Новый ТабличныйДокумент;
Макет=ПолучитьМакет("Макет");
............
(тут получить данные для заполнения, например, запросом)
ОблТаблица = Макет.ПолучитьОбласть("Элемент1");
Счетчик = 0;

Пока ВыборкаКонтрагентов.Следующий() цикл

Счетчик = Счетчик+1;
Если Счетчик = 1 тогда
    ОблТаблица.Параметры.Группа1=ВыборкаКонтрагентов.Ссылка;
иначеесли Счетчик =2 тогда
    ОблТаблица.Параметры.Группа2=ВыборкаКонтрагентов.Ссылка;
иначеесли Счетчик = 3 тогда
    ОблТаблица.Параметры.Группа3=ВыборкаКонтрагентов.Ссылка;
    ТабДокумент.Вывести(ОблТаблица);
    Счетчик=0;
конецесли;

Конеццикла;

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
ТGShutter, вы бы код показали, глядишь и дело пойдет быстрее.

Оффлайн GShutter

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-08-20
  • Сайт: 
  • Профессия: Ученик 1С
Простите что задержался по времени. Я хочу чтобы у меня группы выводились в строке, а клиенты к ним входящие в столбце. На четвертой картинке у меня клиенты выводятся в 3 столбца, но как видно на картинке с 1 строчки у меня вывелась только 2я группа с клиентами , 1 и 3 группы начинают заполняться в порядке очереди  и далеко не с 1 строчки, при этом у 2ой группы продолжает записывать последнюю запись "Клиент 10" никаких там дублей нету, данные выбираются как положено.
Данный код соответствует первой и второй картинке:
 
Количество = 0;
Количество1 = 0;
Макет = Отчеты.СписокКлиентовБезПрайса.ПолучитьМакет("Макет");
ОблШапка = Макет.ПолучитьОбласть("Шапка");
ОблЭлемент = Макет.ПолучитьОбласть("Элемент");
//ОблЭлемент1 = Макет.ПолучитьОбласть("Элемент1");


ТабДок.Очистить();
ТабДок.Вывести(ОблШапка);

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписокКлиентовСрезПоследних.Наименование,
| СписокКлиентовСрезПоследних.Группа,
| МАКСИМУМ(СписокКлиентовСрезПоследних.ДатаПолученияПрайса) КАК ДатаПолученияПрайса
|ИЗ
| РегистрСведений.СписокКлиентов.СрезПоследних КАК СписокКлиентовСрезПоследних
|
|СГРУППИРОВАТЬ ПО
| СписокКлиентовСрезПоследних.Наименование,
| СписокКлиентовСрезПоследних.Группа";

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ВыбСправочник = Справочники.Клиенты.ВыбратьИерархически();
Пока ВыбСправочник.Следующий() Цикл
Если ВыбСправочник.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если СокрЛП(ВРег(ВыбСправочник.Наименование)) = СокрЛП(ВРег(Выборка.Наименование)) И СокрЛП(ВРег(ВыбСправочник.Родитель)) = СокрЛП(ВРег(Выборка.Группа)) Тогда
ДОП = Месяц(ТекущаяДата()) - Месяц(Выборка.ДатаПолученияПрайса);
Если ДОП >= 1 Тогда
   ОблЭлемент.Параметры.Заполнить(Выборка);
   ТабДок.Вывести(ОблЭлемент);
КонецЕсли;
Иначе
Количество = Количество + 1;
КонецЕсли;
Количество1 = Количество1 + 1;
//Сообщить(Количество1);
КонецЦикла;
Если Количество = Количество1 Тогда
ОблЭлемент.Параметры.Группа = ВыбСправочник.Родитель;
ОблЭлемент.Параметры.Наименование = ВыбСправочник.Наименование;
ТабДок.Вывести(ОблЭлемент);
КонецЕсли;
Количество = 0;
Количество1 = 0;
Выборка.Сбросить();
КонецЦикла;

Данный код соответствует третей и четвертой картинке:
	Количество = 0;
Количество1 = 0;
Макет = Отчеты.СписокКлиентовБезПрайса.ПолучитьМакет("Макет");
ОблШапка = Макет.ПолучитьОбласть("Шапка");
ОблЭлемент = Макет.ПолучитьОбласть("Элемент");
ОблЭлемент1 = Макет.ПолучитьОбласть("Элемент1");


ТабДок.Очистить();
ТабДок.Вывести(ОблШапка);

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписокКлиентовСрезПоследних.Наименование,
| СписокКлиентовСрезПоследних.Группа,
| МАКСИМУМ(СписокКлиентовСрезПоследних.ДатаПолученияПрайса) КАК ДатаПолученияПрайса
|ИЗ
| РегистрСведений.СписокКлиентов.СрезПоследних КАК СписокКлиентовСрезПоследних
|
|СГРУППИРОВАТЬ ПО
| СписокКлиентовСрезПоследних.Наименование,
| СписокКлиентовСрезПоследних.Группа";

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ВыбСправочник = Справочники.Клиенты.ВыбратьИерархически();
Пока ВыбСправочник.Следующий() Цикл
Если ВыбСправочник.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если СокрЛП(ВРег(ВыбСправочник.Наименование)) = СокрЛП(ВРег(Выборка.Наименование)) И СокрЛП(ВРег(ВыбСправочник.Родитель)) = СокрЛП(ВРег(Выборка.Группа)) Тогда
ДОП = Месяц(ТекущаяДата()) - Месяц(Выборка.ДатаПолученияПрайса);
Если ДОП >= 1 Тогда
Если СокрЛП(ВРег(Выборка.Группа)) = СокрЛП(ВРег("Обычные")) Тогда
   ОблЭлемент1.Параметры.Группа1 = Выборка.Наименование;
ИначеЕсли СокрЛП(ВРег(Выборка.Группа)) = СокрЛП(ВРег("ВИП")) Тогда
   ОблЭлемент1.Параметры.Группа2 = Выборка.Наименование;
ИначеЕсли СокрЛП(ВРег(Выборка.Группа)) = СокрЛП(ВРег("Премиум")) Тогда
   ОблЭлемент1.Параметры.Группа3 = Выборка.Наименование;
   КонецЕсли;
КонецЕсли;
Иначе
Количество = Количество + 1;
КонецЕсли;
Количество1 = Количество1 + 1;
КонецЦикла;
Если Количество = Количество1 Тогда
Если СокрЛП(ВРег(ВыбСправочник.Родитель)) = СокрЛП(ВРег("Обычные")) Тогда
   ОблЭлемент1.Параметры.Группа1 = ВыбСправочник.Наименование;
ИначеЕсли СокрЛП(ВРег(ВыбСправочник.Родитель)) = СокрЛП(ВРег("ВИП")) Тогда
   ОблЭлемент1.Параметры.Группа2 = ВыбСправочник.Наименование;
ИначеЕсли СокрЛП(ВРег(ВыбСправочник.Родитель)) = СокрЛП(ВРег("Премиум")) Тогда
   ОблЭлемент1.Параметры.Группа3 = ВыбСправочник.Наименование;
КонецЕсли;

ТабДок.Вывести(ОблЭлемент1);
КонецЕсли;
//ТабДок.Вывести(ОблЭлемент1);
Количество = 0;
Количество1 = 0;
Выборка.Сбросить();
КонецЦикла;


Теги:
 

"Зебра" во внешнем отчете"

Автор AK11Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 356
Последний ответ 23 Дек 2016, 22:01
от AK11
как в отчете "Главная книга" отображать для счетов столбцы не только "С кредита", но и "На дебет"

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1122
Последний ответ 13 Мар 2016, 00:55
от дфтын
Не заполняются колонки "Цена" и "Сумма" в отчете "Остатки товаров принятых на комиссию". УТ11

Автор VladimirMelnychenkoРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 467
Последний ответ 18 Янв 2017, 11:42
от VladimirMelnychenko
"Задваивание" данных в отчете

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 7319
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
в отчете показывает остатки в файловой базе, в sql не показывает

Автор StanforevaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1165
Последний ответ 12 Апр 2016, 12:18
от Stanforeva

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 169
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal