Имя: Пароль:
1C
1C 7.7
v7: ТиС 7.7 Выбрать (Найти) ближайший к текщему другой Док другого вида.
0 raykom
 
12.02.13
23:51
Всем привет.

Нужно масла маленько в башку. Подсобите.

Иду по выборке (не знаю как) имею объект (Док)документов вида "ПКО", надо постоянно обращаться к ближайшему (предыдущему по позиции) документу "Реализация", обращаться можно из поцедуры в которую передаю свой текущий() объект Док - документ вида "ПКО"

Как короче всего это сделать ?
1 raykom
 
13.02.13
01:46
Накулемесил такое вот.

Функция М_ЦенаНовПлатежи(Док)
   ДокТипаЦены = СоздатьОбъект("Документ.Реализация");
   ДокТипаЦены.ОбратныйПорядок(1);                
   ДокТипаЦены.ВыбратьПоЗначению(Док.ДатаДок-10,Док,"Контрагент", Док.Контрагент);
   ДокТипаЦены.ПолучитьДокумент();
   Возврат ДокТипаЦены.ТекущийДокумент();
КонецФункции

Но имею вот такую ошибку
ДокТипаЦены.ВыбратьПоЗначению(Док.ДатаДок-10,Док,"Контрагент", Док.Контрагент);
{Справочник.ПравилаВыгрузки.ФормаСписка.ФормаСписка.Модуль(2200)}: Объект - документ определенного вида!

Причем Просто ВыбратьДокументы() работает норм. Но ине надо по контрику отобрать.

Подскажите, что я не так пилю ?
2 Zhuravlik
 
13.02.13
02:05
(1) ДокТипаЦены = СоздатьОбъект("Документ");
<< Объект - документ определенного вида! >>
3 Zhuravlik
 
13.02.13
02:06
+ А у вас вот здесь
"ДокТипаЦены.ВыбратьПоЗначению(Док.ДатаДок-10, *Док* ,"Контрагент", Док.Контрагент);" - вторым параметром просто ссылка на документ? Без "ТекущийДокумент()"?
4 raykom
 
13.02.13
02:10
(2)Дак, а разве ВыбратьПоЗначению только с неопределенного вида работает ? Да ну.
(3)Второй параметр это Док.Контрагент ?
Так он уже оббъект спозиционированный. Я из него любые реквизиты получаю.
5 Zhuravlik
 
13.02.13
02:24
(4) 1. По-моему да :)
   2. Нет, я имел в виду просто "док", вы его в функцию передаете как д = М_ЦенаНовПлатежи(Док.ТекущийДокумент())?
Просто, если он из выборки без ссылки передается, то ВыбратьПоЗначению не будет отбирать с позиции этого дока, если я не ошибаюсь.
6 raykom
 
13.02.13
02:40
(5)Да, проблема в п.1

Но, блин, мне надо только Реализация чтоб в выборку попадала.

Как вот.
7 raykom
 
13.02.13
02:42
Может тогда сначала определить выборку по журналу ?
8 raykom
 
13.02.13
02:47
Блят, нет такого журнала. Только общий по покупателю.
9 raykom
 
13.02.13
02:50
Аа ... Придется циклом получать из выборки и по значению Контрагент сравнивать

Нет  ... Таки В одинесе сидят местами ломом подпоясанные.
10 raykom
 
13.02.13
02:50
Пошол спасть. Всем пока.
11 Злопчинский
 
13.02.13
03:06
ДокР   = СоздатьОбъект("Документ.Реализация");
ВыбПКО = ПКО.ТекущийДокумент();
ДокР.ОбратныйПорядок(1);
ДокР.ВыбратьДокументы(,ВыбПКО);
Пока ДокР.ПолучитьДокумент()=1
Цикл
 Если ДокР.Контрагент <> ВыбПКО.Контрагент
 Тогда
   Продолжить;
 КонецЕсли;
 Прервать;
КонецЦикла;
Если ДокР.Выбран()=0
Тогда
Сообщить("АЛЯРМ");
КонецЕсли;
.
если вопрос быстродействия не стоит (а я думаю именно так - то можно огрнаичиться таким кодом и не выеживаться)
12 Злопчинский
 
13.02.13
03:07
(0) ns, написал какую задачу решаешь...? взаиморасчеты раскидываешь или что? чем шттаная схема взаиморасчетов не нравится?
13 raykom
 
13.02.13
09:47
(12) :)) Воровайку дорисовываю.

А то реализации по ценам дописал как резать, а вылезли переплаты от клиентов. Торговики в ахе )))

Срочно надо обрезать платежи клиентов на поцент наценки.
Но не спрашивай, почему ищу реализацию. Только из нее из типа цен можно узнать какая наценка была актуальной на тот момент для клиента.

Потому как реквизит тип цен в договоре клиента нифига не периодический.
14 raykom
 
13.02.13
09:48
(11)Спасибо. Это то, что нужно. Я перед сном уже так и решил в (9)
15 Злопчинский
 
13.02.13
20:13
(13) > Только из нее из типа цен можно узнать какая наценка была актуальной на тот момент для клиента.
- наценка относительно чего...?
.
м.б. Меню-Отчеты-Аналитические-Анализ продаж - и смоти наценку (плдс/или минус) - хоть по каждому товару в каждой реализации...
.
????
16 raykom
 
13.02.13
20:29
(15)Относительно базовой. В базе тру - 15%, в базе паблтк -5%
:)
17 Злопчинский
 
14.02.13
02:44
В ОУ базе - приходуй товар от поставщиков не по стоимости, а по базовой (прайсовой) цене. в любой момент за люой период - штатными отчетами будешь видеть нужные тебе наценки безо всяких допилок и переделок типовой конфиги. У меян работает именно так. Для отдела продаж реальный доход (у меня в конторе!) - нафиг не нужен - все оценки идут относительно базового продажного прайса, по которому приходуется товар основного поставщика. И никаких проблем.
18 raykom
 
14.02.13
08:29
Я и так виэу все что мне неда. Мне надо, что бы некоторые другие на видели тру наценок. И вообще, считали, что паблик база одна и она является тру и с ней работали.
:)
Уже все решено.
19 msk-07
 
02.03.13
15:42
Честно ни чего не понимаю, мне вообще нужно выбрать все реализации по договору контрагента, для этого и на писал запрос
20 raykom
 
02.03.13
18:22
(19)Ну упрощенно как то так.

ДокР   = СоздатьОбъект("Документ.Реализация");
ДокР.ВыбратьДокументы();
Пока ДокР.ПолучитьДокумент()=1
Цикл
 Если ДокР.Договор <> ВыбКонтрагент.ОсновнойДоговор
 Тогда
   Продолжить;
 КонецЕсли;
 //Тут необходимое действие.
КонецЦикла;

//ВыбКонтрагент - реквизит на форме обработки.