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

Автор Тема: Как сгруппировать одноименные поля контрагента у которых разные суммы?  (Прочитано 4549 раз)

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

Оффлайн Rayrat

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-05
  • Сайт: 
  • Профессия: Бухгалтер
Как сгруппировать одноименные поля контрагента у которых разные суммы? в модуле
ибо отчет расползается на 10 страниц...
подскажите хоть в каком куске кода это править надо

Процедура КнопкаВыполнитьНажатие(Кнопка)

// Макет = ВнешниеОбработки.ВыгрузкаЗадолженности.ПолучитьМакет("Макет");

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

Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
Запрос.УстановитьПараметр("СписокСчетов", СписокСчетов);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Подразделение", Подразделение);

Результат = Запрос.Выполнить();

Макет = ПолучитьМакет("МакетВыгрузки");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДокумент = Новый ТабличныйДокумент();
ТабДокумент.Вывести(ОбластьШапка);

Парам = ОбластьСтрока.Параметры;

ВыборкаКонтрагент = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

Если не ВыборкаКонтрагент.Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда

//Парам.Заполнить(ВыборкаКонтрагент);

//Парам.Контрагент = ВыборкаКонтрагент.Контрагент.НаименованиеПолное;
//Если ВыборкаКонтрагент.СуммаВзаиморасчетов > 0 Тогда

//Парам.СуммаДт = Формат(ВыборкаКонтрагент.СуммаДт,"ЧДЦ=2; ЧГ=0");
//Парам.СуммаКт = Формат(ВыборкаКонтрагент.СуммаКт,"ЧДЦ=2; ЧГ=0");

//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов < 0 Тогда
// Парам.СуммаДт = 0;
// Парам.СуммаКт = Формат(-ВыборкаКонтрагент.СуммаВзаиморасчетов,"ЧДЦ=2; ЧГ=0");
//ИначеЕсли ВыборкаКонтрагент.СуммаВзаиморасчетов = 0 Тогда
//
// Парам.СуммаДт = 0;
// Парам.СуммаКт = 0;
//КонецЕсли;

//Сч = 0;
Парам.УчетнаяСистема = "";

ВыборкаДоговор = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаДоговор.Следующий() Цикл

Если не ВыборкаДоговор.ДоговорСпр = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда

Парам.Заполнить(ВыборкаДоговор);

Парам.Контрагент = ВыборкаДоговор.Контрагент.НаименованиеПолное;
Парам.СуммаДт = Формат(ВыборкаДоговор.СуммаДт,"ЧДЦ=2; ЧГ=0");
Парам.УчетнаяСистема = "";


Парам.Дата = Формат(ДатаКон, "ДЛФ=Д");
// Если не ПустаяСтрока(ВыборкаДоговор.ДоговорНаименование) Тогда
// Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Если (ВыборкаДоговор.НомерДоговора = Null)
и (ВыборкаДоговор.ДатаДоговора = Null) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
ИначеЕсли (ПустаяСтрока(ВыборкаДоговор.НомерДоговора))
и (ВыборкаДоговор.ДатаДоговора = Дата(1,1,1)) Тогда
Парам.Договор = ВыборкаДоговор.ДоговорНаименование;
Иначе
Парам.Договор = ВыборкаДоговор.НомерДоговора+ " от " + Формат(ВыборкаДоговор.ДатаДоговора, "ДЛФ=Д");
КонецЕсли;

Парам.Дата = "";
Парам.Договор = "";
ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;

КонецЦикла;

// ТабДокумент.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
ТабДокумент.Защита = Истина;
ТабДокумент.Показать();

ТекстДок = Новый ТекстовыйДокумент();

ИмяФ = КаталогВыгрузки;

ИмяФайла = ИмяФ+ "\debts.csv";
СимволРазделитель = " ";

КонечнаяСтрока = ТабДокумент.ВысотаТаблицы;
КонечнаяКолонка = ТабДокумент.ШиринаТаблицы;

Для строка = 1 по КонечнаяСтрока Цикл
СтрКа = "";
Для колонка = 1 по КонечнаяКолонка Цикл

ОбластьЯчейки = ТабДокумент.Область(Строка,Колонка);
ОбластьТекст = ОбластьЯчейки.Текст;
СтрКа = СтрКа+ОбластьТекст+СимволРазделитель;

КонецЦикла;
СтрКа = СтрКа + строка;
ТекстДок.ДобавитьСтроку(СтрКа)
КонецЦикла;
ТекстДок.Записать(ИмяФайла, "windows-1251");


КонецПроцедуры

Процедура КаталогВыгрузкиНачалоВыбора(Элемент, СтандартнаяОбработка)
// Вставить содержимое обработчика.

СтандартнаяОбработка = Ложь;

ДиалогВыбораКаталогВыгрузки = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогВыбораКаталогВыгрузки.Заголовок = "Открытие каталога для передачи файлов в систему Элюдия";
// ДиалогВыбораКаталогЭкспорта.ПроверятьСуществованиеФайла = Истина;
ДиалогВыбораКаталогВыгрузки.Каталог = КаталогВыгрузки;

Если Не ДиалогВыбораКаталогВыгрузки.Выбрать() Тогда
Возврат;
КонецЕсли;

КаталогВыгрузки = ДиалогВыбораКаталогВыгрузки.Каталог;

КонецПроцедуры

Процедура ПриОткрытии()
// Вставить содержимое обработчика.
Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация");
//Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");

СписокСчетов.Очистить();
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоИмущественномуИЛичномуСтрахованию);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоПретензиям);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоПричитающимсяДивидендам);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.КорректировкаРасчетовПрошлогоПериода);

ДатаКон = ТекущаяДата();
КаталогВыгрузки = "";
КонецПроцедуры


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Группировка в запросе - присутствует.
Просто если в каком либо поле появляются разные значения, то и появляются дополнительные строки... Смотрите итоговый результат запроса...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Rayrat

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-05
  • Сайт: 
  • Профессия: Бухгалтер
Требуется собрать строчки именно по подразделениям(отделам)...
Както принудительно можно это сделать?
javascript:void(0);

Оффлайн Rayrat

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-05
  • Сайт: 
  • Профессия: Бухгалтер

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
по этому примеру не видно в каких колонках значения отличаются...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Кроме договора и подразделения в запросе ничего не видно
(Выкинь их из запроса и таблица сгруппируется, ну и соответственно и Номер и Дату и все что связано с договором)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Rayrat

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-05
  • Сайт: 
  • Профессия: Бухгалтер
нужны поля: контрагент, Дт, подразделение как я их выкину)

Оффлайн Rayrat

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-06-05
  • Сайт: 
  • Профессия: Бухгалтер
вот полный скрин отчета

Оффлайн chuevsf

  • Хочу! Хочу! Хочу! Мышь на палочке!
  • Глобальный модератор
  • *****
  • Сообщений: 1376
  • РЕПУТАЦИЯ: 345
  • КПД: 25%
  • Регистрация: 2010-07-08
    • Skype: chuevsf
  • Сайт: 
  • Профессия: Программист 1С
Выведи данные отдела в макет и увидишь, то отделы разные при одинаковом контрагенте.

Есть еще вариант, что подразделения будут разные...


Теги:
 

Не работают поля "налоговый" и "бухгалтерский"

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

Ответов: 2
Просмотров: 2465
Последний ответ 31 Дек 2011, 11:36
от AntonB
Значение "00000000001" поля "Код" не уникально

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

Ответов: 4
Просмотров: 6844
Последний ответ 24 Ноя 2014, 12:21
от gigson
Заполнение поля табличной части документа из табличной части справочника.

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

Ответов: 3
Просмотров: 4195
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Значение поля "Владелец" не заполнено или заполнено неверно

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

Ответов: 1
Просмотров: 3212
Последний ответ 16 Ноя 2015, 09:36
от cska-fanat-kz
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

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

Ответов: 14
Просмотров: 8485
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

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

* Кто онлайн

  • Точка Гостей: 817
  • Точка Скрытых: 0
  • Точка Пользователей: 15
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal