Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Выбрать документы содержащие номенклатуру          
bereznoy Подменю пользователя
сообщение 06.11.12, 0:00
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

При проведении возвратной накладной, необходимо сделать проверку, если товар отгружался не более чем месяц назад, то все ОК, а если товар не отгружался вообще в течении месяца или дата отгрузки больше чем месяц с текущей даты, то выдавать ошибку, не дать провести и выдать сообщение какие товары выходят за "рамки" разрешенных возвратов.

Вероятно необходимо сделать запрос по тобличной части документов РеализацияТоваровиУслуг, по каждой строки из ВозвратДокументовОтПокупателя

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


Помогите плз с запросиком


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

Ardi Подменю пользователя
сообщение 06.11.12, 0:52
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

В стандартных конфигурациях возвратная накладная вводится на основании реализации.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

sava1 Подменю пользователя
сообщение 06.11.12, 7:55
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Не обязательно

Если продажи конкретному контрагенту - проверить регистр Продажи (и лучше в подписке ПриЗаписи)

Fynjy Подменю пользователя
сообщение 06.11.12, 8:06
Сообщение #4

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Я так протелепатирую, что это УТП ... Исходя из этого есть регистр Продажи - запрос нужно делать к нему ... Так выгребать не проведенные, не правильно проведенные и помеченные документы не комильфо ... И запрос нужно делать к табличной части Товары если уж все ж таки выгребать документы ...
Цитата(sava1 @ 06.11.12, 7:55) *
Если продажи конкретному контрагенту - проверить регистр Продажи (и лучше в подписке ПриЗаписи)

В бухии нет регистра продажи к примеру ...


Signature

bereznoy Подменю пользователя
сообщение 06.11.12, 23:35
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    

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

КонецЦикла;
        
    
КонецПроцедуры // ПередЗаписью()



Вот так сделал, может что то не так сделал?


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

Ardi Подменю пользователя
сообщение 06.11.12, 23:52
Сообщение #6

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Данные отборы нужно вставить не в "Где" а в "РегистрНакопления.Продажи(...............................................)".


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Zaval Подменю пользователя
сообщение 07.11.12, 1:18
Сообщение #7

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Все не так, причем начиная с приемки Задачи. Перезвоните мне со служебного телефона 0972344412.

alex040269 Подменю пользователя
сообщение 07.11.12, 7:33
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Zaval , а можно озвучить? Вкратце!



Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Zaval Подменю пользователя
сообщение 07.11.12, 8:13
Сообщение #9

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Можно бы было вкратце - я бы озвучил smile.gif
Пример
05.09.12 Продажа 20шт
15.09.12 Возврат 20шт
25.09.12 Возврат 20шт

В этой ситуации нужно анализировать продажи за 16.08.12 - 15.09.12, чтобы выяснить, какая часть Возврата от 15.09 уложилась в "свой месяц", а какая сторнировала Продажу от 05.09.
А если и там были возвраты - в общем случае(надеюсь есть помнящие, что значит решение задачи в общем случае) придется рассчитать историю прдаж/возвратов за весь период ведения учета.

Мое мнение - нужен дополнительный РН

Сообщение отредактировал Zaval - 07.11.12, 8:17

Спасибо сказали: alex040269, bereznoy,

sava1 Подменю пользователя
сообщение 07.11.12, 9:11
Сообщение #10

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(Ardi @ 06.11.12, 0:52) *
В стандартных конфигурациях возвратная накладная вводится на основании реализации.


не надо усложнять задачу - обычно действуют на основаниии - и надо в запросе анализировать документ основание

alex040269 Подменю пользователя
сообщение 07.11.12, 9:25
Сообщение #11

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(sava1 @ 07.11.12, 9:11) *
не надо усложнять задачу - обычно действуют на основаниии - и надо в запросе анализировать документ основание

можно и так, НО тогда придется ввести жесткое ограничение и запретить ввод возврата не на основании.

Цитата(Zaval @ 07.11.12, 8:13) *
Можно бы было вкратце - я бы озвучил smile.gif
Пример
05.09.12 Продажа 20шт
15.09.12 Возврат 20шт
25.09.12 Возврат 20шт

В этой ситуации нужно анализировать продажи за 16.08.12 - 15.09.12, чтобы выяснить, какая часть Возврата от 15.09 уложилась в "свой месяц", а какая сторнировала Продажу от 05.09.
А если и там были возвраты - в общем случае(надеюсь есть помнящие, что значит решение задачи в общем случае) придется рассчитать историю прдаж/возвратов за весь период ведения учета.

Мое мнение - нужен дополнительный РН

В общих чертах понятно. И нужно еще анализировать. Быть может возврат и вкладывается в заданный период, НО этот товар уже вернули.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

sava1 Подменю пользователя
сообщение 07.11.12, 9:30
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Проще запретить ввод не на основании чем разгребать всю туфту. Еще один анализ приЗаписи на наличие докОснования.

bereznoy Подменю пользователя
сообщение 11.11.12, 15:23
Сообщение #13

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

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



Если Выборка.Количество < ТекСтрокаТовары.Количество Тогда      
    
    Сообщить("Продаж (за месяц):  " + ТекСтрокаТовары.Номенклатура + " - " + Выборка.Количество + " Возрат: " + ТекСтрокаТовары.Количество);
Отказ = Истина;  
КонецЕсли;
КонецЦикла;


Единственное как описал Zaval, как учесть этот вариант не знаю, конечно можно послушаться и сделать регистр накопления возвратов и при записи документа еще смотреть сколкьо за месяц возвратов


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

Ardi Подменю пользователя
сообщение 11.11.12, 15:41
Сообщение #14

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Делаем запрос по контрагенту за весь период.
Продажа идёт плюсом. Возврат минусом.
В свёрнутом виде уже вернутые ПАРТИИ будут исчезать.

Получившуюся таблицу анализируем за свежий период.
-----------
Вариант 2:
Если анализируем оборот за месяц - то возвраты старых партий будут минусом, а возвраты свежих исчезнут из таблицы.
Далее анализируем сумму плюсовых оборотов в таблице.

Сообщение отредактировал Ardi - 11.11.12, 15:43


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 12:35
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!