менеджер отдельный реквизит в документе, акционная цена сразу подставляется в расходную. Вопрос как определить при частичной оплате какой товар оплатили , а какой нет, а далее понять акционный он или нет. Думаю что при формировании документа ставить признак "акционная цена"
Ближе всего отчет "Продажи по оплате за период". Для вашей схемы нужно учесть что в этом отчете: 1. Частично оплаченная расходная накладная считается оплаченной полностью 2. Не доступны свойства и категории в отчете. (акционный и обычный отбирать как-то по другому)
ЗЫ. Были такие запросы от пользователей и мы реализовывали, но там если копнуть глубже сложновато получится. Например учет возврата денег, учет возврата товара, замены товара (акционный на обычный) в том числе и прошлых периодов, за который менеджер уже получил ЗП.
Может осталась какая ни будь информация по этому поводу в виде наработок, алгоритмов, cf, отчётов или ещё что. Буду благодарен за любую информацию.
Здравствуйте уважаемые коллеги! Нужна Ваша посильная помощь вот в каком деле… Исходные данные: УТП редакция 1.0 под 8.1 Задача: необходим отчёт в котором будет наглядно отображены данные для оплаты работы менеджеров по продаже исходя из следующих данных… Расчёт ЗП менеджера происходит по оплаченным расходным накладным, которые могут быть оплачены полностью или частично, но оплата происходит только за оплаченную часть. В каждой конкретной накладной могут быть товары как по акционной цене, так и по стандартным ценам. По акционным товарам процент оплаты один, по стандартным товарам другой.
Надеюсь задачу объяснил понятно. Возможно кто-то уже реализовал подобную задачу или сможете подсказать как её реализовать более оптимально. Буду очень благодарен за пример кода или готового отчёта. Возможно есть отчёт, в котором можно сгруппировать данные по продажам менеджера где будет видно товары акционные и обычные, а вознаграждение пока посчитать ручками.
К управляемому интерфейсу конечно прямого отношения не имеет, хотя уже работает на 8.2 Обработку пишу на управляемой форме. Не знал в каком разделе лучше разместить тему.
Конечная цель: Таблица в виде… По вертикали - Группы товаров (родитель товара), по горизонтали недели года (Номер недели внутри календарного года), на пересечении коэффициент сезонности. Расчёт сезонности происходит согласно данных продаж за текущий год и два предыдущих. В расчёт не должны браться дни продаж в акционный день (т.е. если в отдельном подразделении на конкретный товар была акция). Возможно кто-то решал подобную задачу или может подсказать как решал бы… Интересен как должен выглядеть запрос что бы можно было удалить акционные продажи (регистр сведений со структурой: подразделение, товар, день начала акции, день окончания), к стати не обязательно удалять в запросе я могу в цикле удалить данные продажи но надо видеть день, и как затем сгруппировать понедельно и итог по группе. Буду благодарен за идеи реализации и за конкретный запрос к БД. Конфигурация УТ 2.3
Пустую дату я передавал для себя, чтобы мне надпись "NULL" глаза в консоли не мозолила. Передавать можно или список или группу или вообще тупо одну номенклатуру - не принципиально. Ускорить его можно наверно только путем сокращения периода поиска, т.е. параметрами
&НачалоПериода
и
&КонецПериода
Как его ещё ускорить мне пока в голову не приходит, может более знающие люди напишут. Я передал группу размером в 335 номенклатур, отработало в консоли за 6,15 секунды
наверно что-то вроде этого, запрос не самый оптимальный + возможно задвоение строк если есть документы проведенные в одну и ту же секунду
А зачем передавать параметр &ПустаяДата, в МАКСИМУМ(ЕСТЬNULL(ЗаказыПоставщикам.Период, &ПустаяДата)) КАК ДатаПослЗаказа и т.д. если нет документа, тогда надо не заполнять дату вообще. Я этого не пойму… (((
В запрос я передаю не группы товара, а список значений с необходимой номенклатурой… Переделал так: Номенклатура В (&Номенклатура)
Цитата(Powerman @ 18.12.14, 17:54)
А зачем передавать параметр &ПустаяДата, в МАКСИМУМ(ЕСТЬNULL(ЗаказыПоставщикам.Период, &ПустаяДата)) КАК ДатаПослЗаказа и т.д. если нет документа, тогда надо не заполнять дату вообще. Я этого не пойму… (((
В запрос я передаю не группы товара, а список значений с необходимой номенклатурой… Переделал так: Номенклатура В (&Номенклатура)
Дааа, тяжёлый получился первоначальный запрос… Передал в него 900 шт. номенклатуры, прошло минут 25 результата нет… ((
Т.е. учитывать при выводе последнего заказа не только заказ поставщика, но и внутренний заказ? или отдельными колонками?
Можно отдельными колонками
!
Правила, п.13
В таком виде отчёт очень долго отрабатывает. Может действительно можно его на регистрах построить? Только нужно к колонкам в первом моём сообщении добавить ещё по внутренним заказам и приход по перемещениям.
Если имеется в виду последний документ по дате то так как в примере ниже, если документ последний в принципе - то брать максимум по ссылке. P.S. Ещё я бы использовал не документы а регистры накопления ЗаказыПоставщикам, Закупки и т.п.
ВЫБРАТЬ РАЗРЕШЕННЫЕ СпрНоменклатура.Ссылка КАК Номенклатура, МАКСИМУМ(ЕСТЬNULL(ТоварыЗаказа.Ссылка.Дата, &ПустаяДата)) КАК ДатаПослЗаказа, МАКСИМУМ(ЕСТЬNULL(ТоварыПоступления.Ссылка.Дата, &ПустаяДата)) КАК ДатаПослПоступления ПОМЕСТИТЬ ВтПоследниеДокументы ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику.Товары КАК ТоварыЗаказа ПО СпрНоменклатура.Ссылка = ТоварыЗаказа.Номенклатура И ТоварыЗаказа.Ссылка.Проведен = ИСТИНА ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ТоварыПоступления ПО СпрНоменклатура.Ссылка = ТоварыПоступления.Номенклатура И ТоварыПоступления.Ссылка.Проведен = ИСТИНА ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры) СГРУППИРОВАТЬ ПО СпрНоменклатура.Ссылка ; ВЫБРАТЬ РАЗРЕШЕННЫЕ ВтПоследниеДокументы.Номенклатура, ВтПоследниеДокументы.Номенклатура.Код КАК Код, ВтПоследниеДокументы.ДатаПослЗаказа КАК ДатаЗаказа, ЕСТЬNULL(ЗаказПоставщикуТовары.Сумма, 0) КАК СуммаЗаказа, ЕСТЬNULL(ЗаказПоставщикуТовары.Количество, 0) КАК КоличествоЗаказа, ВтПоследниеДокументы.ДатаПослПоступления КАК ДатаПоступления, ЕСТЬNULL(ПоступлениеТовары.Сумма, 0) КАК СуммаДокумента, ЕСТЬNULL(ПоступлениеТовары.Количество, 0) КАК КоличествоДокумента ИЗ ВтПоследниеДокументы КАК ВтПоследниеДокументы ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ПО ВтПоследниеДокументы.ДатаПослЗаказа = ЗаказПоставщикуТовары.Ссылка.Дата И ВтПоследниеДокументы.Номенклатура = ЗаказПоставщикуТовары.Номенклатура И ЗаказПоставщикуТовары.Ссылка.Проведен = ИСТИНА ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТовары ПО ВтПоследниеДокументы.ДатаПослПоступления = ПоступлениеТовары.Ссылка.Дата И ВтПоследниеДокументы.Номенклатура = ПоступлениеТовары.Номенклатура И ПоступлениеТовары.Ссылка.Проведен = ИСТИНА
Огромное спасибо!!!! Слегка видоизменив, всё получилось, только вот задача слегка изменилась… Ещё надо добавить к заказам ВнутринниеЗаказы. Т.е. Заказы поставщику + ВнутренниеЗаказы. Как это лучше сделать?
Подскажите, пожалуйста, какой должен быть запрос к документам «ЗаказПоставщику» и «ПоступлениеТоваровУслуг» чтобы получить отчёт в виде: Номенклатура, Код, ДатаПоследнегоЗаказа, КоличествоПоследнегоЗаказа, СуммаПоследнегоЗаказа, ДатаПоследнегоПоступления, КоличествоПоследнегоПоступления, СуммаПоследнегоПоступления Должно быть в одну строку для списка номенклатуры по списку складов Заранее спасибо за помощь.
Задача… Есть двадцать типов документов из тридцати, где есть реквизит с типом значения булево (предположим название реквизита «Годен»). Как отобрать в запросе все документы, где есть этот реквизит, а затем выбрать все документы всех выбранных типов, где это значение равно Истине? Спасибо.
Задача… Есть двадцать типов документов из тридцати, где есть реквизит с типом значения булево (предположим название реквизита «Годен»). Как отобрать в запросе все документы, где есть этот реквизит, а затем выбрать все документы всех выбранных типов, где это значение равно Истине? Спасибо.
P.S. Это будет отчёт на СКД
Случайно задублировал сообщение, отредактировать возможности нет... Простите админы...
1. Запишутся, если у вас нет дополнительных обработок в подписках на события. 2. Если есть сомнения в том, что "не факт, что они в таком виде запишутся", то зачем тогда вообще к ним запрос делать? Цель-то конечная есть какая-то?
Конечная цель проверить ошибки при проведении по партиям. Т.е. количество по табличной части документа сравнить с количеством в движении по регистру. По-хорошему, я так думаю, надо бы проверять в какой ни будь обработке.
и убедитесь, что в "Движения.ПартииТоваровНаСкладах" есть записи. какой будет результат запроса?
При записи движений запрос находит записи, но мне кажется, это не правильно потому как разработчики заложили запись движений в другом месте с какой-то целью. Кто что думает по этому поводу…
Цитата(Rayne @ 17.07.14, 11:08)
Была тут где-то тема, где обсуждалось, почему нельзя движения по партиям достать запросом в обработке проведения самого документа
В конце процедуры «ОбработкаПроведения» вызываю из общего модуля экспортную функцию, в которой пытаюсь получить движения по регистру, которые точно есть т.к. в консоли запросов данные получаю. При выполнении запроса в экспортной функции данных нет… Пытался получать их через запрос и СоздатьНаборЗаписей с отбором по регистратору. Код ниже… Подскажите, почему нет данных… Спасибо.
Попытка АДОСоединение.Open(ConnectionString); Исключение Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное); Возврат; КонецПопытки;
В клиент-серверном выдаёт ошибку… «{Форма.Форма.Форма(49)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Объект 'D:\123\496500.xls' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.»
Попытка АДОСоединение.Open(ConnectionString); Исключение Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное); Возврат; КонецПопытки;
В клиент-серверном выдаёт такую ошибку…
{Форма.Форма.Форма(51)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Ошибка при создании файла.
Здравствуйте. Нужна Ваша помощь… Есть таблица значений, полученная из импорта файла Excel, есть реквизиты строка начало чтения ТЗ, строка окончания чтения ТЗ, колонка наименование, колонка цена, для того что бы указать наименование колонок с наименованиями и ценой. Ещё есть нюанс… Между строками начало и конец чтение, где необходимые данные, могут затесаться строки типа «Строительные материалы», затем идут строки со строительными материалами, затем «Продукты питания» далее идёт номенклатура с продуктами питания и т.д. Каким образом можно сформировать запрос к таблице значений что бы в выборке запроса оказались только данные начиная со строки № … и по строку №…, а также только те колонки которые мне необходимы, к примеру наименование и цена и без колонок с подписями «Строительные материалы», «Продукты питания» и т.д. Названия колонок также как начало и конец строки берутся в запросе из реквизитов, указанных выше. В прикреплённом файле виден пример файла Excel. К примеру, мне нужны строки с 16 по 39 (номера указаны в реквизитах), без строк 26, 37 (текст написан в колонке № т.е. в колонке Наименование ничего нет) Заранее спасибо за подсказку.
По идеи Вам следует сделать экспортную процедуру/ функцию в модуле объекта. А для проверки корректности рег. задания можно записывать текстовый файлик с логом событий. ( странно, что не выдает ошибки . Так как Вы не создаете форму обработки, но используете процедуру из неё ! )
Уже разобрался... Создал экспортную процедуру в модуле объекта обработки и вызвал её из общего модуля. Только при отработке строки Соединение = Новый COMОбъект("ADODB.Connection"); появлялась ошибка связанная с работой обработки в защищённом режиме. Для исправления ошибки прописал следующее в строке создания обработки в общем модуле...
Создано регламентное задание и общий модуль (клиент, сервер) . Регламентное задание вызывает экспортную процедуру, из которой должна запускаться внешняя обработка, в которой в модуле формы есть экспортная процедура. Вопрос… Всё ли я правильно делаю? Возможно, нужно запускать экспортную процедуру не из модуля формы, а из модуля объекта. В обработке ещё есть несколько параметров, которые надо заполнять иначе обработка не будет работать. Вопрос как нужно правильно запускать внешнюю обработку и передавать в неё параметры. Регламент отрабатывает без ошибки… Обработка на управляемой форме. Часть кода… Общий модуль…
Подскажите пожалуйста, как лучше реализовать… Создаю документ на сервере и необходимо заполнить реквизит формы типа таблица значений. На сервере реквизит формы не доступен. Вроде надо применять ДанныеФормыВЗначение, но не знаю к какой стороны подойти…
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!