Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Вопрос по документу (http://forums.kuban.ru/f1040/vopros_po_dokumentu-2504126.html)

Ksardas11 17.04.2012 14:24

Вопрос по документу
 
Здравствуйте , стоит 7.7 конфигурация альфа-авто: Автозапчасти+автосервис.Проблема такая. Есть Приходные накладные в которых есть товар , цена сумма и тд. Так вот мне надо добавить Разницу , это ЦенаПрихода/ЦенуЗаказа. Не знаю как вытащить из документа заказа поставщику цену соответсвующею товару в приходной накладной. Разницу надо добавить на печатную форму Приходной накладной.Пробовал Через движения регистра Заказы поставщикам.
Заказ= СоздатьОбъект ("ТаблицаЗначений");
Заказ.НоваяКолонка("Код");
Заказ.НоваяКолонка("ЕТК");
Заказ.НоваяКолонка("Товар");
Заказ.НоваяКолонка("Цена");
Рег = СоздатьОбъект("Регистр.ЗаказыПоставщикам");
Если Проведен() = 1 Тогда
Рег.ВыбратьДвиженияДокумента(Текущийдокумент());
Пока Рег.ПолучитьДвижение() = 1 Цикл
ТекДок = рег.ЗаказПост;
ТекДок.ВыбратьСтроки();
Пока ТекДок.ПолучитьСтроку() = 1 Цикл
Заказ.НоваяСтрока();
Заказ.Товар=ТекДок.Товар;
Заказ.Код=ТекДок.Товар.Код;
Заказ.ЕТК=ТекДок.Товар.КаталНомер;
Заказ.Цена=ТекДок.Цена;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Потом искал совпадения
Если Заказ.НайтиЗначение(СокрЛП(Строка(Товар.Код)),Ном,1) =1 тогда
Если Ном>0 Тогда
ЦенаЗак= Заказ.ПолучитьЗначение(Ном,4);
Кофициент=ЦенаЗак;
КонецЕсли;
КонецЕсли;
Нашел только пару позиций в приходных и все.
Подскажите как лучше сделать или что я сделал не так .

Buzz 17.04.2012 14:39

Заказ и приходник как связаны между собой?

Ksardas11 17.04.2012 14:58

В приходных есть реквизит по заказу. В нем дата и номер заказа. И вроде больше нечего...

Buzz 17.04.2012 15:11

В конфигураторе посмотри у документа Приходник есть документ основание. Если есть то в нем и надо искать номенклатуру. Если просто номер заказа, то искать документ Заказ по номеру и в нем номенклатуру.

Buzz 17.04.2012 15:27

+ В таблице значений ищи по Номенклатуре (по коду не надо).
Ном = 0;
Приход.ВыбратьСтроки();
Пока Приход.ПолучитьСтроку() = 1 Цикл
Если Заказ.НайтиЗначение(Приход.Товар,Ном,"Товар") =1 тогда
Цена = Заказ.ПолучитьЗначение(Ном,"Цена");
КонецЕсли;

Ksardas11 17.04.2012 15:46

Есть в приходнике ДокументОснование , тип значение Документ.
ДокОсн=ДокументОснование;
ДокОснВыбратьСтроки();
Пока ДокОсн.ПолучитьСтроку() = 1 Цикл
Если Заказ.НайтиЗначение(Приход.Товар,Ном,"Товар") =1 тогда
Цена = Заказ.ПолучитьЗначение(Ном,"Цена");
КонецЕсли;
Я правильно понял?

Buzz 17.04.2012 15:52

В приходнике основание = Заказ.
Выбираем строки из приходника.
Выгружаем табличную часть документа основания (заказ) в ТЗ.
При выборке строк из приходника ищем номенклатуру в тз и получаем нужные значения.

Ksardas11 17.04.2012 16:04

ДокОсн=ДокументОснование;
ДокОсн.ВыбратьСтроки();
Пока ДокОсн.ПолучитьСтроку() = 1 Цикл
Заказ.НоваяСтрока();
Заказ.НоваяСтрока();
Заказ.Товар=ДокОсн.Товар;
Заказ.Код=ДокОсн.Товар.Код;
Заказ.ЕТК=ДокОсн.Товар.КаталНомер;
Заказ.Цена=ДокОсн.Цена;

КонецЦикла;


Если Заказ.НайтиЗначение(СокрЛП(Строка(Товар)),Ном,Товар) =1 тогда
Если Ном>0 Тогда
ЦенаЗак= Заказ.ПолучитьЗначение(Ном,4);
КонецЕсли;

Пишет Номер за пределами значения.

Buzz 17.04.2012 16:08

тз = СоздатьОбъект("ТаблицаЗначений"); //сюда заказ выгружаем
ДокОсн.ВыгрузитьТабличнуюЧасть(тз);
ВыбратьСтроки(); //перебираем строки текущего документа (Приходник)
Пока ПолучитьСтроку() = 1 Цикл
Ном = 0;
Если тз.НайтиЗначение(Товар,Ном,"Товар") = 1 Тогда
ЦенаЗак = тз.ПолучитьЗначение(Ном,"Цена");
КонецЕсли;
//Выводим строки в печатную форму
КонецЦикла;

Ksardas11 17.04.2012 16:21

Блин походу меня начинает уже клинить. Мне надо выводить это в процедуре печать в приходной накладной. Как мне это сделать?
Процедура Печать()
Таб=СоздатьОбъект("Таблица");
Таб.ПовторятьПриПечатиСтроки(10,10);
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Ном=0;
Пока ПолучитьСтроку()=1 Цикл
Ном=Ном+1;
Ну и там еще куча кода.
ps Спасибо что помогаешь =))

Ksardas11 17.04.2012 16:25

и еще он пишет что
Если тз.НайтиЗначение(Товар,Ном,"Товар")
Товар неверный индификатор колонки , как будто её нет.

Buzz 17.04.2012 16:29

Посмотри, какие идентификаторы колонок в документе Заказ.

Ksardas11 17.04.2012 16:36

В документе Заказ поставщику есть реквизит табличной части товар.Но на форме нету.

Ksardas11 17.04.2012 16:42

Еще покопался и нашел что там есть основание не только на документ заказ поставщику но еще на Расходная накладная и товарные чек

Buzz 17.04.2012 16:50

Проверяй, если Заказ, тогда выгружаем.

Ksardas11 17.04.2012 16:53

Сделал все норм выгрузилось ищет , но осталось вопрос как это все в процедуру Печать() запихнуть

qweqwe123123 17.04.2012 17:55

15-Ksardas11 > так же, как и на форум

Ksardas11 18.04.2012 07:35

Блин опять появилась ошибка номер за пределами значеия...


Текущее время: 12:46. Часовой пояс GMT +3.