|
v7: Помогите по запросу 1С 7.7 | ☑ | ||
---|---|---|---|---|
0
Jeema
22.10.12
✎
05:42
|
День добрый!Суть отчета показать определенный неликвидный товар в складе который не продавался в определенный период.
Вот что я накалякал: Перем Запрос, ТекстЗапроса; //******************************************* Процедура Сформировать() тз=создатьобъект("ТаблицаЗначений"); тз.новаяколонка("Фирма"); тз.новаяколонка("Склад"); тз.новаяколонка("Номенклатура"); тз.новаяколонка("Колприход"); тз.новаяколонка("Колрасход"); тз.новаяколонка("Начост"); тз.новаяколонка("Коност"); тз.новаяколонка("НачСумма"); тз.новаяколонка("ПрихСумма"); тз.новаяколонка("РасхСумма"); тз.новаяколонка("КонСумма"); тз.новаяколонка("КодОперации"); тз.новаяколонка("ЦенаПрод"); //инициация таблицы Таблица = СоздатьОбъект("Таблица"); Таблица.ИсходнаяТаблица("Таблица"); Таблица.Опции(0,0,0,0); Таблица.ВывестиСекцию("Шапка"); НомСтроки = 0; //конец инициации //******************************************************************* //******************************************************************* //формирование запроса Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса=" |ПЕРИОД С ДатаНачала По ДатаКонца; |Фирма = Регистр.ОстаткиНаСкладах.Склад.Фирма; |Склад = Регистр.ОстаткиНаСкладах.Склад; |Номенклатура = Регистр.ОстаткиНаСкладах.Товар; |Сумма = Регистр.ОстаткиНаСкладах.Сумма; |Количество = Регистр.ОстаткиНаСкладах.Количество; |ЦенаПрод = Регистр.ОстаткиНаСкладах.Ценапрод; |"; //***************************************************************** ТекстЗапроса = ТекстЗапроса + " |Группировка Номенклатура без групп;"; //|Группировка КодОперации;"; ТекстЗапроса = ТекстЗапроса + "Функция НачКоличество = НачОст(Количество); |Функция ПрихКоличество = Приход(Количество); |Функция РасхКоличество = Расход(Количество); |Функция КонКоличество = КонОст(Количество);"; ТекстЗапроса = ТекстЗапроса + "Функция НачСумма = НачОст(Сумма); |Функция ПрихСумма = Приход(Сумма); |Функция РасхСумма = Расход(Сумма); |Функция КонСумма = КонОст(Сумма);"; //"Условие (КодОперации<>Перечисление.КодыОпераций.Продажа);" //"Условие (КодОперации=Перечисление.КодыОпераций.Перемещение);" //******************************************************************** //******************************************************************** Если ВыбСклад.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + "Условие (Склад = ВыбСклад);"; КонецЕсли; Если ВыбНом.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + "Условие (Номенклатура = ВыбНом);"; КонецЕсли; Если ВыбФирма.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + "Условие (Фирма = ВыбФирма);"; КонецЕсли; //***************************************************************************************** // Если колво>0 тогда // // если выбзнач.получитьзначение(выбзнач.текущаястрока()) = ">" тогда // ТекстЗапроса = ТекстЗапроса + // "Условие(количество>колво);"; //оператор1 // Иначеесли выбзнач.получитьзначение(выбзнач.текущаястрока()) = "<" тогда // ТекстЗапроса = ТекстЗапроса + // "Условие(количество<колво);"; //оператор2 // Иначеесли выбзнач.получитьзначение(выбзнач.текущаястрока()) = "=" тогда // ТекстЗапроса = ТекстЗапроса + // "Условие(количество=колво);"; //оператор3 // конецесли // // Конецесли; // // //************************************************************************************** //конец блока формирования запроса Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда сообщить("запрос упал!!!"); Возврат; КонецЕсли; //*********************************************************************** //цикл обработки запроса //*********************************************************************** СуммаВсегоПриход=0; НомСтроки=1; //сообщить(текстзапроса); пока Запрос.группировка(1) = 1 цикл //пока Запрос.группировка(2) = 1 цикл Если запрос.КонКоличество <> 0 тогда Ценаприход = запрос.сумма/запрос.конколичество; СуммаВсегоПриход=суммаВсегоПриход+Ценаприход; Таблица.ВывестиСекцию("Строка"); НомСтроки=НомСтроки+1; КонецЕсли; //Сообщить("куда дели "+запрос.номенклатура+" ?"); //конецесли; тз.новаястрока(); тз.Фирма=запрос.фирма; тз.Склад=запрос.склад; тз.Номенклатура=запрос.номенклатура; тз.Колприход=запрос.ПрихКоличество; тз.Колрасход=запрос.РасхКоличество; тз.Начост=запрос.НачКоличество; тз.Коност=запрос.КонКоличество; тз.НачСумма=запрос.начсумма; тз.ПрихСумма=запрос.прихсумма; тз.РасхСумма=запрос.расхсумма; тз.КонСумма=запрос.консумма; //тз.КодОперации=запрос.кодоперации; Если запрос.КонКоличество < колво тогда СуммаВсегоПриход=суммаВсегоПриход+Ценаприход; Таблица.ВывестиСекцию("Строка"); НомСтроки=НомСтроки+1; КонецЕсли; Если Запрос.конколичество > колво тогда СуммаВсегоПриход=суммаВсегоПриход+Ценаприход; Таблица.ВывестиСекцию("Строка"); НомСтроки=НомСтроки+1; КонецЕсли; //*********************************************************************** //иначеЕсли Запрос.КонКоличество = 0 Тогда //сообщить("Товар "+ запрос.номенклатура +" количество равно нулю!!!!!!"); КонецЦикла; //КонецЦикла; //*********************************************************************** //конец цикла обработки запроса Таблица.Защита(0); Если глПолучитьПолномочие("РазрешитьРедактироватьПечатнуюФорму") = 0 Тогда Таблица.Защита(1); КонецЕсли; Таблица.ВывестиСекцию("Строка"); Таблица.ВывестиСекцию("Всего"); Таблица.ВывестиСекцию("Подвал"); Таблица.Показать("Отчет неликвидный товар",""); тз.выбратьстроку(); КонецПроцедуры //****************************************************************************** Процедура ПриОткрытии() ВыбЗнач.добавитьзначение("<",); ВыбЗнач.добавитьзначение(">",); ВыбЗнач.добавитьзначение("=",); ВыбФирма = глЗначениеПоУмолчанию("Фирма"); ВыбСклад= глзначениеПоУмолчанию("Склад"); ДатаКонца = ПолучитьДатуТА(); ДатаНачала = НачМесяца(ПолучитьДатуТА()); КонецПроцедуры //Если Условие <> "< Не выбран >" Тогда // ТекстЗапроса = ТекстЗапроса + // "Условие ("+Условие+"ЗначениеУсловия);"; //КонецЕсли; Процедура тст() сообщить(выбзнач.текущаястрока()); конецпроцедуры Процедура выбзнач() сообщить(выбзнач.текущаястрока()); конецпроцедуры //****************************************************************************** //******************************************************************************** |
|||
1
povar
22.10.12
✎
05:47
|
Помнится, в ЖКК был пример подобной задачи
|
|||
2
Jeema
22.10.12
✎
05:50
|
можно ссылку
|
|||
3
povar
22.10.12
✎
05:52
|
(2) ссылка в коробке
|
|||
4
Jeema
22.10.12
✎
05:53
|
я тут новичок, что за коробка?
|
|||
5
ado
22.10.12
✎
05:53
|
А в чем проблема то?
|
|||
6
ado
22.10.12
✎
05:55
|
(4) Коробка с программным продуктом 1С:Предприятие. В ней лежит такая стопка желто-красных книжек.
|
|||
7
Jeema
22.10.12
✎
05:56
|
нету у меня ни коробки, ничего
|
|||
8
Jeema
22.10.12
✎
06:37
|
помогите, плиз
|
|||
9
Гефест
22.10.12
✎
06:40
|
чем помочь-то?
|
|||
10
Sserj
22.10.12
✎
06:42
|
А что хочешь то непонятно.
Ну и как подсказка, по этому отчету будут неверные данные если было просто движение без продажи, типа перемещение или переоценка. |
|||
11
povar
22.10.12
✎
06:44
|
(7) нет коробки - "нет мультиков"
|
|||
12
dk
22.10.12
✎
07:34
|
ну код накалякал, а что не устраивает в коде?
|
|||
13
Simod
22.10.12
✎
07:40
|
(0) Алгоритм примерно таков: необходимо получить список номенклатуры которая имеется на остатке на конец выбранного периода и по которой нет движений расход с кодами операций относящийся к продаже. Расход может может быть вызван перемещением, изменением статуса и т.д. Эти операции не должны учитываться.
При установке условий в тексте запроса по складу, номенклатуре или фирме необходимо учитывать, являются они элементом или группой и использовать оператор "в" или "=" (см. синтаксис-помощник). |
|||
14
Jeema
22.10.12
✎
07:43
|
Щас проверю
|
|||
15
Jeema
22.10.12
✎
07:51
|
и еще вопрос (не к топу) что за "ГлОживить???"
|
|||
16
Simod
22.10.12
✎
07:53
|
Функция из глоб.модуля. Открой и прочитай описание.
|
|||
17
Jeema
22.10.12
✎
07:55
|
в глобальнике не нашел
|
|||
18
Jeema
22.10.12
✎
07:57
|
может в типовом? у меня внешка
|
|||
19
povar
22.10.12
✎
08:02
|
(18) может, все таки, заняться своим делом ?
|
|||
20
badboychik
22.10.12
✎
08:51
|
ставь 1cpp.dll и забудь про эти наркоманские запросы
|
|||
21
пипец
22.10.12
✎
08:57
|
(20) шютка? :)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |