Помощь - Поиск - Пользователи - Календарь
Полная версия: Подскажите немного по программированию.
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 7.7" > (7.7) Отчеты и обработки для платформы "1С:Предприятие 7.7"
Pluto
Здравствуйте!

Возникла необходимость немного автоматизировать склад, а знаний по программированию на 1С нет.
Цель такая: имеется приход и расход. В приходе заносятся вес, номенклатура, цена и т.д.
Необходимо чтоб в отчёте расхода цена бралась из документа прихода.

Алгоритм как я понимаю следующий:

1. При выводе отчёта по списанию берётся номер партии и номенклатура
2. Перебираются все документы прихода и сравнивается номер партии и номенклатура.
3. При совпадении, подтягивается цена из документа прихода.

А вот как перебирать документы прихода и как вообще из других документов брать сумму я не знаю.
Lilit
Цитата(Pluto @ 22.9.2007, 16:15) *

Здравствуйте!

Возникла необходимость немного автоматизировать склад, а знаний по программированию на 1С нет.
Цель такая: имеется приход и расход. В приходе заносятся вес, номенклатура, цена и т.д.
Необходимо чтоб в отчёте расхода цена бралась из документа прихода.

Алгоритм как я понимаю следующий:

1. При выводе отчёта по списанию берётся номер партии и номенклатура
2. Перебираются все документы прихода и сравнивается номер партии и номенклатура.
3. При совпадении, подтягивается цена из документа прихода.

А вот как перебирать документы прихода и как вообще из других документов брать сумму я не знаю.

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

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


но потом нужно что-то делать с этой ценой то есть куда-то ее девать. Если я правильно поняла то это должно делаться при создании документа расход, то тогда в модуле документа и пиши, выбирай доки, вытаскивай нужные реквизиты, и ставь в нужное место расхода
Чешир
Цитата(Lilit @ 22.9.2007, 17:27) *

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

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


если это еще актуально...

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

Код
    
Усл1=НомерПартии;
Усл2=Номенклатура;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с НачДата;
|НомерПарти=Документ.Приход.НомерПартии;
|Номенкл=Документ.Приход.Номенклатура;
|Цена=Документ.Приход.Цена;
|Группировка НомерПартии;
|Условие (НомерПартии=Усл1);
|Условие (Номенклатура=Усл2);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка("НомерПартии")=1 Цикл
//присваиваем нужным переменным значение Цены из Прихода
// (Запрос.Цена)
КонецЦикла;





Вот как-то так
Seeker
Хм. А в какой это конфигурации? Если партии товаров - это справочник, то почему бы не сделать в нем поле "ПрихДокумент", в который будет при приходовании записываться сама приходная накладная. Не придется перебирать документы, ища нужный приходный.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.