KolyaVasya
Участник
Offline
|
|
« Ответ #30 : 11-05-2011 05:16 » |
|
код с кнопками выглядит вот так у меня Процедура КнДобавить (); ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1); КонецПроцедуры Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора) ВыбТовар.ДобавитьЗначение (Элемент); Сообщить (Элемент); ТекРаз =ВыбТовар.РазмерСписка (); Сообщить(ТекРаз); КонецПроцедуры // Кнопка Удалить Процедура КнУдалить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!"); Возврат ; КонецЕсли; Сообщить (ТекСтр); ВыбТовар.УдалитьЗначение(ТекСтр,1); КонецПроцедуры //Очистить Процедура КнОчистить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Сообщить (ТекСтр); ВыбТовар.УдалитьВсе(); КонецПроцедуры Просто начал только изучать язык вот иудрю ))
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
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
|
|
« Ответ #32 : 11-05-2011 12:12 » |
|
Не - Свернуть() - это метод типа ТаблицаЗначений, а ты пытаешься применить его к Таблице Вот это: Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Перемещение Таб.ВывестиСекцию("Перемещение"); КонецЦикла; меняешь на ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ); ТЗ.Свернуть("Товар","Количество,Сумма"); // У тебя были лишние кавычки между Количество и Сумма - здесь только запятая ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Перемещение"); КонецЦикла;
И немного нужно подправить макет, а именно секцию "Перемещение", чтобы значения подставлялись из ТЗ Добавлено через 3 минуты и 47 секунд:1) в общем суть в том что если я в СпискеЗначений не выбираю значение то отчет формируется по всему периоду и из доков берет только последнею позицию товара....((((( что не есть гуд.
По поводу периода - это фича, а не баг Просто проверяй перед запросом: Если ПустоеЗначение(ВыбНачПериода)=1 Тогда... По поводу одного товара: добавь группировку по товару. ... |Группировка Перемещение упорядочить по Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма, Перемещение.Количество, Перемещение.ДатаДок, Перемещение.Единица; |Группировка Товар; ... Добавлено через 3 минуты и 5 секунд:Да - и сворачивание можно тоже сделать в запросе. Сморти пример: "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Перемещение = Документ.Перемещение.ТекущийДокумент; |ТМЦ = Документ.Перемещение.ТМЦ; |Кво = Документ.Перемещение.Кво; |Функция КвоСумма = Сумма(Кво); |Группировка Перемещение; |Группировка ТМЦ; |"//}}ЗАПРОС
|
|
« Последнее редактирование: 11-05-2011 12:19 от Kivals »
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #33 : 11-05-2011 12:36 » |
|
1)блин спсб )))) Я понял куда рыть целый день потратил на то что перепутал "Таблицу" с "ТаблицейЗначений" 2)С фичей тоже спсб ) даже где то видел подобную проверку ) 3) НО вот с ТЗ и "перемещения" в макете не понял совсем чего там подправить ? можно поконкретнее ? Например в ячейке где указан товар - у меня в ней вписано <Запрос.ЗначениеУпорядочивания(1,4)> по скольку изначально строил при помощи конструктора дажефиг знает что на что менять. Видно что данные брались из цикла "Запрос", теперь мы меняем на "ТЗ" соотвественно и запись в ячейке должна выглядеть типа <ТЗ.ЗначениеУпорядочивания(1,4)> Правильно понял ? )
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #34 : 11-05-2011 12:45 » |
|
Должно быть ТЗ.<ИдентификаторПоля> Идентификаторы полей - это значения группировок и названия функций запроса (могут быть еще и поля - см. справку по методу Выгрузить() запроса), т.е. в твоем случае это будут Перемещение и Товар: ТЗ.Перемещение ТЗ.Товар
Если для моего примера - то там будут ТЗ.Перемещение ТЗ.ТМЦ ТЗ.КвоСумма
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
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
|
|
« Ответ #36 : 12-05-2011 12:28 » |
|
Первая строка - это итоги по складу, потому там и нету товара Попробуй добавить в начало запроса "без итогов": |Период с ВыбНачПериода по ВыбКонПериода; |Без итогов;
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #37 : 16-05-2011 04:49 » |
|
Первая строка - это итоги по складу, потому там и нету товара Попробуй добавить в начало запроса "без итогов": |Период с ВыбНачПериода по ВыбКонПериода; |Без итогов;
В таблице склады записываются в конце строки (обрати внимание на копипаст) а вот куда товар подевался вопрос (((((((((
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #38 : 16-05-2011 06:12 » |
|
Может где-то и ошибка в учете - не заполнена номенклатура в документе
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #39 : 16-05-2011 11:53 » |
|
Должно быть ТЗ.<ИдентификаторПоля> Идентификаторы полей - это значения группировок и названия функций запроса (могут быть еще и поля - см. справку по методу Выгрузить() запроса), т.е. в твоем случае это будут Перемещение и Товар: ТЗ.Перемещение ТЗ.Товар
Если для моего примера - то там будут ТЗ.Перемещение ТЗ.ТМЦ ТЗ.КвоСумма
в общем вот что (НЕ) получается файлик приложил, т.е. Товар вроде бы как плюсуется, но вот с выводом количества и суммы так и не разберусь ((((( помогите плз ) // Отчет перемещения товаров между складами, если товар не выбран отчет формируется за весь указанный период // между указаными складами. Процедура КнДобавить (); ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1); КонецПроцедуры Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора) ВыбТовар.ДобавитьЗначение (Элемент); Сообщить (Элемент); ТекРаз =ВыбТовар.РазмерСписка (); Сообщить(ТекРаз); КонецПроцедуры // Кнопка Удалить Процедура КнУдалить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!"); Возврат ; КонецЕсли; Сообщить (ТекСтр); ВыбТовар.УдалитьЗначение(ТекСтр,1); КонецПроцедуры //Очистить Процедура КнОчистить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Сообщить (ТекСтр); ВыбТовар.УдалитьВсе(); КонецПроцедуры
// Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Перемещение = Документ.Перемещение.ТекущийДокумент; |Склад = Документ.Перемещение.Склад; |СкладКуда = Документ.Перемещение.СкладКуда; |Товар = Документ.Перемещение.Товар; |Единица = Документ.Перемещение.Единица; |Количество = Документ.Перемещение.Количество; |Сумма = Документ.Перемещение.Сумма; |Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; |Группировка Товар; |Условие(Склад = ВыбСклад); |Условие(СкладКуда = ВыбСкладКуда); |Условие(Товар в ВыбТовар); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ); ТЗ.Свернуть("Товар","Количество"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Пер"); КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры
Добавлено через 32 секунды:еще одно вложение
|
|
« Последнее редактирование: 16-05-2011 11:53 от KolyaVasya »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #40 : 16-05-2011 12:59 » |
|
Попробуй так (Измененные строки отмечены ">"): ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Перемещение = Документ.Перемещение.ТекущийДокумент; |Склад = Документ.Перемещение.Склад; |СкладКуда = Документ.Перемещение.СкладКуда; |Товар = Документ.Перемещение.Товар; |Единица = Документ.Перемещение.Единица; > |_Количество = Документ.Перемещение.Количество; > |_Сумма = Документ.Перемещение.Сумма; |Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; |Группировка Товар; > |Функция Количество = Сумма(_Количество); > |Функция Сумма = Сумма(_Сумма); |Условие(Склад = ВыбСклад); |Условие(СкладКуда = ВыбСкладКуда); |Условие(Товар в ВыбТовар); |"//}}ЗАПРОС ;
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #41 : 17-05-2011 06:26 » |
|
Попробывал иначе, уточнил параметры выгрузить. Вроде запахало.... но кривоватенько, сверху странная строка с непонятными суммами по колонкам на сколько я понял, как бы от этой строки избавиться теперь ? И если можно пример как изменить фон и цвет у строки которая указывает группу товара ? ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ,1,); Сообщить(ТЗ); ТЗ.Свернуть("Товар","Сумма,Количество,Единица"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Пер"); КонецЦикла;
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #42 : 17-05-2011 08:23 » |
|
...строка с непонятными суммами по колонкам ...
Скорее всего это общий итог. Или "Без Итогов;" в запросе, или еще раз внимательно параметры Выгрузить (там есть про итоги) ... изменить фон и цвет у строки которая указывает группу товара ? ...
Создать еще одну секцию (например, "Группа") и настроить ее как нужно, потом: ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию(?(ТЗ.Товар.ЭтоГруппа()=1,"Группа","Пер")); КонецЦикла;
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #43 : 17-05-2011 08:32 » |
|
так и сделал, только к группировке товар добавил еще без групп чтобы у них всю пачку выдавало в отчете... )
[code]"//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Без Итогов; |Перемещение = Документ.Перемещение.ТекущийДокумент; |Склад = Документ.Перемещение.Склад; |СкладКуда = Документ.Перемещение.СкладКуда; |Товар = Документ.Перемещение.Товар; |Единица = Документ.Перемещение.Единица; |Количество = Документ.Перемещение.Количество; |Сумма = Документ.Перемещение.Сумма; |Группировка Перемещение упорядочить по Перемещение.Товар, Перемещение.Сумма, Перемещение.Количество, Перемещение.Единица; |Группировка Товар Без Групп; |Условие(Склад = ВыбСклад); |Условие(СкладКуда = ВыбСкладКуда); |Условие(Товар в ВыбТовар); |"//}}ЗАПРОС ; Появилась необходимость добавлять в список значений из номенклатуры группы товаров, как с этим быть не подскажешь ? Процедура КнДобавить (); ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1); КонецПроцедуры Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора) ВыбТовар.ДобавитьЗначение (Элемент); Сообщить (Элемент); ТекРаз =ВыбТовар.РазмерСписка (); Сообщить(ТекРаз); КонецПроцедуры // Кнопка Удалить Процедура КнУдалить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!"); Возврат ; КонецЕсли; // Сообщить (ТекСтр); ВыбТовар.УдалитьЗначение(ТекСтр,1); КонецПроцедуры //Очистить Процедура КнОчистить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); // Сообщить (ТекСтр); ВыбТовар.УдалитьВсе(); КонецПроцедуры [/code]
|
|
« Последнее редактирование: 17-05-2011 08:35 от KolyaVasya »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #44 : 17-05-2011 08:39 » |
|
Появилась необходимость добавлять в список значений из номенклатуры группы товаров, как с этим быть не подскажешь ?
Ну тогда убери Без групп и Без итогов и просто игнорируй строки с пустыми товарами (это будут итоги по другим группировкам): Пока ТЗ.ПолучитьСтроку()=1 Цикл Если ПустоеЗначение(ТЗ.Товар)=1 Тогда Продолжить; КонецЕсли; Таб.ВывестиСекцию(?(ТЗ.Товар.ЭтоГруппа()=1,"Группа","Пер")); КонецЦикла;
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #45 : 17-05-2011 08:43 » |
|
Я не про это немного ) Я имел ввиду что даже в список значений не добавляется группа )
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #46 : 17-05-2011 12:22 » |
|
ааа... не вчитался Тогда вот: Процедура КнДобавить (); Конт = ВыбТовар; ОткрытьПодбор("Справочник.Номенклатура","ФормаДляПодбора",ВыбТовар,1); Конт.ВыборГруппы(1); КонецПроцедуры
|
|
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #47 : 18-05-2011 08:05 » |
|
Конт.ВыборГруппы(1); {\\CRANKSERVER\DEKALKO\DB\EXTFORMS\222.ERT(7)}: Поле агрегатного объекта не обнаружено (ВыборГруппы) Процедура КнДобавить (); Конт = ВыбТовар; ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1); Конт.ВыборГруппы(1); попробовал просто ВыбТовар.ВыборГруппы (1); тот же результат ) в интернетах вот что то типа этого советуют Процедура ПриОткрытии() Номенклатура.ВыборГруппы(1); ... КонецПроцедуры Так у меня и процедуры такой нет.... как это реализовать немного не понятно ) // Отчет перемещения товаров между складами, если товар не выбран отчет формируется за весь указанный период // между указаными складами.
Процедура КнДобавить (); Конт = ВыбТовар; ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1); Конт.ВыборГруппы(1); КонецПроцедуры Процедура ОбработкаПодбора(Элемент,ФормаДляПодбора)
ВыбТовар.ДобавитьЗначение (Элемент); Сообщить (Элемент); ТекРаз =ВыбТовар.РазмерСписка (); Сообщить(ТекРаз); КонецПроцедуры // Кнопка Удалить Процедура КнУдалить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); Если (ТекСтр < 1) Тогда Сообщить ("Сначала выберете значение !!!"); Возврат ; КонецЕсли; ВыбТовар.УдалитьЗначение(ТекСтр,1); КонецПроцедуры //Очистить Процедура КнОчистить(); ТекСтр=ВыбТовар.ТекущаяСтрока(); ВыбТовар.УдалитьВсе(); КонецПроцедуры
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #48 : 18-05-2011 09:00 » |
|
Вот это неверно: Конт = ВыбТовар; ОткрытьПодбор("Номенклатура","ФормаДляПодбора",ВыбТовар,1); Попробуй: Конт = ""; ОткрытьПодбор("Номенклатура","ФормаДляПодбора",Конт,1); Сообщить(ТипЗначенияСтр(Конт)); Конт.ВыборГруппы(1); Результат вывода - сюда Добавлено через 5 минут и 6 секунд:в интернетах вот что то типа этого советуют Процедура ПриОткрытии() Номенклатура.ВыборГруппы(1); ... КонецПроцедуры Так у меня и процедуры такой нет.... как это реализовать немного не понятно ) Это тебе просто нужно скопировать в Модуль "ФормаДляПодбора" по названию процедуры 1С ее выполнит при открытии формы
|
|
« Последнее редактирование: 18-05-2011 09:06 от Kivals »
|
Записан
|
|
|
|
KolyaVasya
Участник
Offline
|
|
« Ответ #49 : 18-05-2011 11:04 » |
|
Благополучно дописали отчет ) Огромное спасиБО ! ) кажется что то понял .... чего то отложилось ... ) спсб )
|
|
|
Записан
|
|
|
|
|