Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: [1С 7.7] азы программирования(создание элементарного отчета)  (Прочитано 91590 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
KolyaVasya
Участник

ru
Offline Offline

« Ответ #30 : 11-05-2011 05:16 » 

код с кнопками выглядит вот так у меня
Код:
Процедура КнДобавить ();
ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1);
КонецПроцедуры
Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора)
ВыбТовар.ДобавитьЗначение (Элемент);
Сообщить (Элемент);
ТекРаз =ВыбТовар.РазмерСписка ();
Сообщить(ТекРаз);
КонецПроцедуры   
// Кнопка Удалить
 Процедура КнУдалить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();     
Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!");
Возврат ;
КонецЕсли;
Сообщить (ТекСтр);
ВыбТовар.УдалитьЗначение(ТекСтр,1);
КонецПроцедуры
//Очистить
   Процедура КнОчистить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();
Сообщить (ТекСтр);
ВыбТовар.УдалитьВсе();
КонецПроцедуры

Просто начал только изучать язык вот иудрю ))
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #31 : 11-05-2011 05:54 » 

Тут ребят новая  нужда возникла....
Этот скрипт работает..., НО ! криво...
1) в общем суть в том что если я в СпискеЗначений  не выбираю значение то отчет формируется по всему периоду и из доков берет только последнею позицию товара....(((((  что не есть гуд.
2) Хотелось бы видеть суммирование по кол-ву и по сумме в таблице. т. е. если товар встречается несколько раз за период хотелось бы чтобы он суммировался по кол-ву и сумме
смотрю в сторону Свернуть("Товар","Количество","Сумма"); но не усею с ней работать... куда вставить в как применить???

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




// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар.ТекущийЭлемент;
|Единица = Документ.Перемещение.Единица.Единица;
|Группировка Перемещение упорядочить по Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма, Перемещение.Количество, Перемещение.ДатаДок, Перемещение.Единица;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Перемещение
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры





Добавлено через 6 часов, 25 минут и 26 секунд:
Код:
	// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Перемещение
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;
Таб.Свернуть ("2","4,5");
 Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");

   Таб.Свернуть ("2","4,5");
{\\CRANKSERVER\DEKALKO\DB\EXTFORMS\222.ERT(70)}: Поле агрегатного объекта не обнаружено (Свернуть)

Непойму что со свернуть не так ? в таблице тоже не ясно как оформить ? НИД ХЕЛП. В секции "перемещение" есть вставки типа "Запрос.ЗначениеУпорядочивания(1,2)" логично было бы предположиить что для значений свернуть () тоже надо какие то индефикаторы, но какие фиг знает погуглил не нашол (( помогите плз
пробовал и так и эдак.... И вертикальные секции создавал, и с кавычками эксперементировал и без короче крутил вертел, выдает ошибку.
   Таб.Свернуть ("2","4,5");
{\\CRANKSERVER\DEKALKO\DB\EXTFORMS\222.ERT(70)}: Поле агрегатного объекта не обнаружено (Свернуть)
« Последнее редактирование: 11-05-2011 12:19 от KolyaVasya » Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 11-05-2011 12:12 » 

Не - Свернуть() - это метод типа ТаблицаЗначений, а ты пытаешься применить его к Таблице
Вот это:
Код:
	Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Перемещение
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;
меняешь на
Код:
	ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ);
ТЗ.Свернуть("Товар","Количество,Сумма"); // У тебя были лишние кавычки между Количество и Сумма - здесь только запятая
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;
И немного нужно подправить макет, а именно секцию "Перемещение", чтобы значения подставлялись из ТЗ

Добавлено через 3 минуты и 47 секунд:
1) в общем суть в том что если я в СпискеЗначений  не выбираю значение то отчет формируется по всему периоду и из доков берет только последнею позицию товара....(((((  что не есть гуд.
По поводу периода - это фича, а не баг Улыбаюсь Просто проверяй перед запросом: Если ПустоеЗначение(ВыбНачПериода)=1 Тогда...
По поводу одного товара: добавь группировку по товару.
Код:
...
|Группировка Перемещение упорядочить по Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма, Перемещение.Количество, Перемещение.ДатаДок, Перемещение.Единица;
|Группировка Товар;
...


Добавлено через 3 минуты и 5 секунд:
Да - и сворачивание можно тоже сделать в запросе. Сморти пример:
Код:
	"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|ТМЦ = Документ.Перемещение.ТМЦ;
|Кво = Документ.Перемещение.Кво;
|Функция КвоСумма = Сумма(Кво);
|Группировка Перемещение;
|Группировка ТМЦ;
|"//}}ЗАПРОС
« Последнее редактирование: 11-05-2011 12:19 от Kivals » Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #33 : 11-05-2011 12:36 » 

1)блин спсб )))) Я понял куда рыть целый день потратил на то что перепутал "Таблицу" с "ТаблицейЗначений"
2)С фичей тоже спсб ) даже где то видел подобную проверку ) 
3) НО вот с ТЗ и "перемещения" в макете не понял совсем чего там подправить ? можно поконкретнее ? Например в ячейке где указан товар - у меня в ней вписано <Запрос.ЗначениеУпорядочивания(1,4)> по скольку изначально строил при помощи конструктора дажефиг знает что на что менять. Видно что данные брались  из цикла "Запрос", теперь мы меняем на "ТЗ" соотвественно и запись в ячейке должна выглядеть типа
<ТЗ.ЗначениеУпорядочивания(1,4)> Не понял Правильно понял ?  )
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 11-05-2011 12:45 » new

Должно быть ТЗ.<ИдентификаторПоля>
Идентификаторы полей - это значения группировок и названия функций запроса (могут быть еще и поля - см. справку по методу Выгрузить() запроса), т.е. в твоем случае это будут Перемещение и Товар:
ТЗ.Перемещение
ТЗ.Товар

Если для моего примера - то там будут
ТЗ.Перемещение
ТЗ.ТМЦ
ТЗ.КвоСумма
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #35 : 12-05-2011 08:35 » 

Код:
  // Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

     Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Перемещение
Таб.ВывестиСекцию("Перемещение");
КонецЦикла;

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

// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

как-то так в общем, трабл в том что не выводит в таблицу поля количество и сумма, пишет что
Поле агрегатного объекта не обнаружено (Количество)
Поле агрегатного объекта не обнаружено (Сумма)
В секции "Итогов" в ячейки вбил индефикаторы "ТЗ.Товар","ТЗ.Количество","ТЗ.Сумма"

Немножко по другому сформировал запрос, думал эти поля появятся если явно в запросе указать... ан нет Жаль
запрос выглядеть стал вот так

Код:
	Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар.ТекущийЭлемент;
|Сумма = Документ.Перемещение.Сумма;
|Количество = Документ.Перемещение.Количество;
|Един = Документ.Перемещение.Единица.Единица;
|Цена = Документ.Перемещение.Цена;
|НомДок = Документ.Перемещение.НомерДок;
|Группировка Перемещение упорядочить по  Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма, Перемещение.Количество, Перемещение.ДатаДок, Перемещение.Единица;
|Группировка Товар;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;


По  "|Группировка Товар;" есть момент небольшой, если список значений пустой  то формируется по периоду, лопатит документы, и находит 3 вида товара одинаковых по названию и по коду (Сигареты лайт, обычные ....)  операторши чтобы не морочиться с и не раздувать номенклатуру пишут по одним кодом. Так вот эти три "перемещения" внутри документа группируются как один товар, НО количество и сумма не сумируюся у сигарет
Пока что идеи кончились что делать и как быть )

Попробовал делать "свернуть" прям в запросе, получается и правда .... ) но суммирует   все подряд и не понятно с чем ))))) хотя если в списке значений только 1 вид товара то все делается просто превосходно )


Добавлено через 32 минуты и 58 секунд:
Код:
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар.ТекущийЭлемент;
|Сумма = Документ.Перемещение.Сумма;
|Количество = Документ.Перемещение.Количество;
|Един = Документ.Перемещение.Единица.Единица;
|Цена = Документ.Перемещение.Цена;
|НомДок = Документ.Перемещение.НомерДок;
|Функция Смит = Сумма (Сумма);
|Функция Колво = Сумма (Количество);
|Группировка Перемещение упорядочить по  Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма, Перемещение.Количество, Перемещение.ДатаДок, Перемещение.Единица;
|Группировка Товар;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;

попытка свернуть  в запросе. Не совсем понятно как избавиться от первой строки ? я так понял это строка за весь отчет ? НО тогда почему она вверху ?
Цитата
HПер-14411       37   10   шт.   370   05.01.2011   Склад транзитный (поставщики)   +пр-т Ленина 5 (вино)
Итого:               640          18225         
HПер-14411   Святой Георгий 20,50   17.5   10   шт.   175   05.01.2011   Склад транзитный (поставщики)   +пр-т Ленина 5 (вино)
Итого:   Святой Георгий 20,50              10      175         
HПер-14411   ЛД виолет Superslims 25-50   22.5   10   шт.   225   05.01.2011   Склад транзитный (поставщики)   +пр-т Ленина 5 (вино)
Итого:   ЛД виолет Superslims 25-50              10      225         
HПер-14411   Мальборо 52-00   52   10   шт.   520   05.01.2011   Склад транзитный (поставщики)   +пр-т Ленина 5 (вино)
Итого:   Мальборо 52-00              10      520         
HПер-14411   ЛД Селект Сильвер 24-00   24   10   шт.   240   05.01.2011   Склад транзитный (поставщики)   +пр-т Ленина 5 (вино)

По непонятной причине куда то девается в первой строке "Товар" и в поле колво плюсуется количество всего отчета тоже самое и с суммой, а хотелось бы видет по каждому товару в отдельности ) Подскажите как сделать плз )
« Последнее редактирование: 12-05-2011 09:10 от KolyaVasya » Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #36 : 12-05-2011 12:28 » 

Первая строка - это итоги по складу, потому там и нету товара
Попробуй добавить в начало запроса "без итогов":
Код:
	|Период с ВыбНачПериода по ВыбКонПериода;
|Без итогов;
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #37 : 16-05-2011 04:49 » 

Первая строка - это итоги по складу, потому там и нету товара
Попробуй добавить в начало запроса "без итогов":
Код:
	|Период с ВыбНачПериода по ВыбКонПериода;
|Без итогов;
В таблице склады записываются в конце строки (обрати внимание на копипаст) а вот куда товар подевался вопрос (((((((((
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #38 : 16-05-2011 06:12 » 

Может где-то и ошибка в учете - не заполнена номенклатура в документе
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #39 : 16-05-2011 11:53 » 

Должно быть ТЗ.<ИдентификаторПоля>
Идентификаторы полей - это значения группировок и названия функций запроса (могут быть еще и поля - см. справку по методу Выгрузить() запроса), т.е. в твоем случае это будут Перемещение и Товар:
ТЗ.Перемещение
ТЗ.Товар

Если для моего примера - то там будут
ТЗ.Перемещение
ТЗ.ТМЦ
ТЗ.КвоСумма



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




// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар;
|Единица = Документ.Перемещение.Единица;
|Количество = Документ.Перемещение.Количество;
|Сумма = Документ.Перемещение.Сумма;
|Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; 
|Группировка Товар;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ);
ТЗ.Свернуть("Товар","Количество");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("Пер");
КонецЦикла;



// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры



































































Добавлено через 32 секунды:
еще одно вложение

* таблица.JPG (188.3 Кб - загружено 950 раз.)
* СКРИН.JPG (231.21 Кб - загружено 1014 раз.)
« Последнее редактирование: 16-05-2011 11:53 от KolyaVasya » Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #40 : 16-05-2011 12:59 » 

Попробуй так (Измененные строки отмечены ">"):
Код:
	ТекстЗапроса = 
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар;
|Единица = Документ.Перемещение.Единица;
> |_Количество = Документ.Перемещение.Количество;
> |_Сумма = Документ.Перемещение.Сумма;
|Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; 
|Группировка Товар;
> |Функция Количество = Сумма(_Количество);
> |Функция Сумма = Сумма(_Сумма);
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #41 : 17-05-2011 06:26 » 

Попробывал иначе, уточнил параметры выгрузить. Вроде запахало.... но кривоватенько, сверху странная строка с непонятными суммами по колонкам на сколько я понял, как бы от этой строки избавиться теперь ?
И если можно пример как изменить фон и цвет у строки которая указывает группу товара ?
Код:
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,1,);
Сообщить(ТЗ);
ТЗ.Свернуть("Товар","Сумма,Количество,Единица");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("Пер");
КонецЦикла;

* отчет.JPG (163.66 Кб - загружено 987 раз.)
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #42 : 17-05-2011 08:23 » 

...строка с непонятными суммами по колонкам ...
Скорее всего это общий итог. Или "Без Итогов;" в запросе,  или еще раз внимательно параметры Выгрузить (там есть про итоги)
... изменить фон и цвет у строки которая указывает группу товара ? ...
Создать еще одну секцию (например, "Группа") и настроить ее как нужно, потом:
Код:
	ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию(?(ТЗ.Товар.ЭтоГруппа()=1,"Группа","Пер"));
КонецЦикла;
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #43 : 17-05-2011 08:32 » 

Код:
так и сделал, только к группировке товар добавил еще без групп чтобы у них всю пачку выдавало в отчете... )


[code]"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без Итогов;
|Перемещение = Документ.Перемещение.ТекущийДокумент;
|Склад = Документ.Перемещение.Склад;
|СкладКуда = Документ.Перемещение.СкладКуда;
|Товар = Документ.Перемещение.Товар;
|Единица = Документ.Перемещение.Единица;
|Количество = Документ.Перемещение.Количество;
|Сумма = Документ.Перемещение.Сумма;
|Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; 
|Группировка Товар Без Групп;
|Условие(Склад = ВыбСклад);
|Условие(СкладКуда = ВыбСкладКуда);
|Условие(Товар в ВыбТовар);
|"//}}ЗАПРОС
;
Появилась необходимость добавлять в список значений из номенклатуры группы товаров, как с этим быть не подскажешь ?


Код:
Процедура КнДобавить ();
ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1);
КонецПроцедуры
Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора)
ВыбТовар.ДобавитьЗначение (Элемент);
Сообщить (Элемент);
ТекРаз =ВыбТовар.РазмерСписка ();
Сообщить(ТекРаз);
КонецПроцедуры    
// Кнопка Удалить
 Процедура КнУдалить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();      
Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!");
Возврат ;
КонецЕсли;
// Сообщить (ТекСтр);
ВыбТовар.УдалитьЗначение(ТекСтр,1);
КонецПроцедуры
//Очистить
  Процедура КнОчистить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();
// Сообщить (ТекСтр);
ВыбТовар.УдалитьВсе();
КонецПроцедуры
[/code]
« Последнее редактирование: 17-05-2011 08:35 от KolyaVasya » Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #44 : 17-05-2011 08:39 » 

Появилась необходимость добавлять в список значений из номенклатуры группы товаров, как с этим быть не подскажешь ?
Ну тогда убери Без групп и Без итогов и просто игнорируй строки с пустыми товарами (это будут итоги по другим группировкам):
Код:
	Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(ТЗ.Товар)=1 Тогда Продолжить; КонецЕсли;
Таб.ВывестиСекцию(?(ТЗ.Товар.ЭтоГруппа()=1,"Группа","Пер"));
КонецЦикла;
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #45 : 17-05-2011 08:43 » 

Я не про это немного )
Я имел ввиду что даже в список значений не добавляется группа )
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #46 : 17-05-2011 12:22 » 

ааа... не вчитался
Тогда вот:
Код:
Процедура КнДобавить ();
Конт = ВыбТовар;
ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1);
Конт.ВыборГруппы(1);
КонецПроцедуры
Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #47 : 18-05-2011 08:05 » 

Цитата
Конт.ВыборГруппы(1);
{\\CRANKSERVER\DEKALKO\DB\EXTFORMS\222.ERT(7)}: Поле агрегатного объекта не обнаружено (ВыборГруппы)
Код:
Процедура КнДобавить (); 
Конт = ВыбТовар;
ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1);
Конт.ВыборГруппы(1);
попробовал просто ВыбТовар.ВыборГруппы (1); тот же результат )

в интернетах вот что то типа этого советуют
Код:
Процедура ПриОткрытии() 
    Номенклатура.ВыборГруппы(1);
    ...
КонецПроцедуры

Так у меня и процедуры такой нет....  как это реализовать немного не понятно )
Код:
// Отчет перемещения товаров между складами, если товар не выбран отчет формируется за весь указанный период
// между указаными складами.

Процедура КнДобавить ();
Конт = ВыбТовар;
ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1);
Конт.ВыборГруппы(1);
КонецПроцедуры
Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора)

ВыбТовар.ДобавитьЗначение (Элемент);

Сообщить (Элемент);
ТекРаз =ВыбТовар.РазмерСписка ();
Сообщить(ТекРаз);
КонецПроцедуры   
// Кнопка Удалить
 Процедура КнУдалить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();     
Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!");
Возврат ;
КонецЕсли;
ВыбТовар.УдалитьЗначение(ТекСтр,1);
КонецПроцедуры
//Очистить
   Процедура КнОчистить();
        ТекСтр=ВыбТовар.ТекущаяСтрока();
ВыбТовар.УдалитьВсе();
КонецПроцедуры


Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #48 : 18-05-2011 09:00 » 

Вот это неверно:
Код:
Конт = ВыбТовар;
ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1);
Попробуй:
Код:
Конт = "";
ОткрытьПодбор("Номенклатура","ФормаДляПодбора",Конт,1);
Сообщить(ТипЗначенияСтр(Конт));
Конт.ВыборГруппы(1);
Результат вывода - сюда

Добавлено через 5 минут и 6 секунд:
в интернетах вот что то типа этого советуют
Код:
Процедура ПриОткрытии() 
    Номенклатура.ВыборГруппы(1);
    ...
КонецПроцедуры

Так у меня и процедуры такой нет....  как это реализовать немного не понятно )

Это тебе просто нужно скопировать в Модуль "ФормаДляПодбора" по названию процедуры 1С ее выполнит при открытии формы
« Последнее редактирование: 18-05-2011 09:06 от Kivals » Записан
KolyaVasya
Участник

ru
Offline Offline

« Ответ #49 : 18-05-2011 11:04 » 

Благополучно дописали отчет )
Огромное спасиБО ! ) кажется что то понял .... чего то отложилось ... ) спсб )
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines