7.7 Нужно правильно составить запрос

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем warayg, 15 июл 2011.

  1. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    ))), я про тему подумал)

    ладно, спасибо, не буду больше мучить, буду разбираться
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Смотрите проводки документа... Если себестоимость там есть - получить плевое дело
  3. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    да я самоучка, и не могу понять как это прописать в виде кода((
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Если себестоимость в проводках есть....
    1) Знаем документ который сформировал проводки.
    2) Знаем счета проводки себестоимости (там же не одна проводка)
    3) Изучаем объект операции. См. метод

    НайтиОперацию(<Документ>)
    Назначение:
    осуществляет поиск операции по значению типа ''Документ''.


    Пытайтесь... Что не получится - спрашивайте
  5. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    ОК спасибо, буду пытаться
  6. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Сделал вот так

    Код:
    Опер = Запрос.РасходнаяНакладная.Операция;
    
    Пока Опер.ПолучитьПроводку()=1 Цикл
    Ном = Опер.НомерПроводки();
    Кво = ?(Опер.Количество=0,"",Формат(Опер.Количество,"Ч13.3"));
    ВалСумма = ?(Опер.ВалСумма=0,"",Формат(Опер.ВалСумма,"Ч12.2"));
    Курс = ?(Опер.Валюта.Выбран()=0,"",Формат(Опер.Валюта.Курс.Получить(Запрос.РасходнаяНакладная.ДатаДок),"Ч10.5"));
    Себестоимость = ВалСумма*Курс/Кво;
    КонецЦикла;
    
    но выдаёт ошибку:

    Код:
    Пока Опер.ПолучитьПроводку()=1 Цикл
    {Отчет.новый2.Форма.Модуль(283)}: Значение не представляет агрегатный объект (ПолучитьПроводку)
    
    Хоть в правильном направлении иду?))
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не тот тип данных)))) Просто совпадение.
    Если не понимаете что-то лучше спросите. Я сказал Изучаем объект операция

    А это значит нужно так:

    Код:
    Опер=СоздатьОбъект("Операция");
    Опер.НайтиОперацию(Запрос.РасходнаяНакладная.ТекущийДокумент());
    Опер.ВыбратьПроводки();
    Пока Опер.ПолучитьПроводку()=1 Цикл
    
    
  8. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    из этого получается вывести к-во, сумму, валюту и т.д., а себестоимость не могу((, как узнать как она в этих проводка называется?
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Я не знаю вашего плана счетов....
    Покажите скриншот проводок документа
  10. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    см проводку №4.. Сумма 2350.59 это и есть себестоимость стола...
  12. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Вот из глобального модуля

    Код:
    Процедура глПроводка(Конт,СчД,СчК,Сумма,Сод,Кво,СубД1,СубД2,СубД3,СубК1,СубК2,СубК3,Вал,ВалСумма,НомерЖурнала) Экспорт
    глПров(Конт,СчД,СчК,Сумма,Сод,Кво,СубД1,СубД2,СубД3,СубК1,СубК2,СубК3,Вал,ВалСумма,НомерЖурнала,"Проводка");
    КонецПроцедуры
    
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Опять 25.... Зачем?????? Сумма себестоимости и номенклатура известны. Осталось только подставить в отчет
  14. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Если я делаю вот так

    Код:
    Опер.НайтиОперацию(Запрос.РасходнаяНакладная.ТекущийДокумент());
    Опер.ВыбратьПроводки();
    Пока Опер.ПолучитьПроводку()=1 Цикл
    
    Кво = ?(Опер.Количество=0,"",Формат(Опер.Количество,"Ч13.3"));
    //Себестоимость = ?(Опер.Себестоимость=0,"",Формат(Опер.Себестоимость,"Ч13.3"));
    ВалСумма = ?(Опер.ВалСумма=0,"",Формат(Опер.ВалСумма,"Ч12.2"));
    Сумма = ?(Опер.Сумма=0,"",Формат(Опер.Сумма,"Ч12.2"));
    Курс = ?(Опер.Валюта.Выбран()=0,"",Формат(Опер.Валюта.Курс.Получить(Запрос.РасходнаяНакладная.ДатаДок),"Ч10.5"));
    КонецЦикла;
    
    и параметр Сумма и есть та себестоимость что в проводке, я проверял, еще то не совсем себестоимость, то сумма (к-во*закуп.цена), проверял по приходам
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Бррррррррррр................. Расшифруйте нормальным языком что вы хотели сказать про сумму в предыдущем посте....

    На скрине я вижу в комментариях проводки - СЕБЕСТОИМОСТЬ
  16. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    правильно, написано себестоимость, но на самом деле то сумма (к-во*цену прихода), я смотрел по приходам там цена прихода - 783,53, а в проводке написано себестоимость - 2350,59, а это и есть 783,53*3 (количество указанное в проводке)
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну так берите ее.... не вижу проблем
  18. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    если я из неё пытаюсь получить себестоимость то выдаёт ошибку

    Код:
    Опер=СоздатьОбъект("Операция");
    Опер.НайтиОперацию(Запрос.РасходнаяНакладная.ТекущийДокумент());
    Опер.ВыбратьПроводки();
    Пока Опер.ПолучитьПроводку()=1 Цикл
    
    Кво = ?(Опер.Количество=0,"",Формат(Опер.Количество,"Ч13.3"));
    //Себестоимость = ?(Опер.Себестоимость=0,"",Формат(Опер.Себестоимость,"Ч13.3"));
    Сумма = ?(Опер.Сумма=0,"",Формат(Опер.Сумма,"Ч12.2"));
    Себестоимость = Сумма/Кво;
    КонецЦикла;
    
    Ошибка:

    Себестоимость = Сумма/Кво;
    {Отчет.новый2.Форма.Модуль(289)}: Операция деления не определена для строковых величин
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    А если так:
    Код:
    Опер=СоздатьОбъект("Операция");
    Опер.НайтиОперацию(Запрос.РасходнаяНакладная.ТекущийДокумент());
    Опер.ВыбратьПроводки();
    Пока Опер.ПолучитьПроводку()=1 Цикл
    Если (Опер.Дебет.Счет<>СчетПоКоду("902")) и (Опер.Кредит.Счет<>СчетПоКоду("281")) Тогда
    Продолжить;
    КонецЕсли;
    Кол=?(Опер.Количество=0,1,Опер.Количество);
    
    Сообщить("Себестоимость товара "+Опер.Дебет.Субконто(2)+" = "+(Опер.Сумма/Кол));
    КонецЦикла;
    
    
  20. TopicStarter Overlay
    warayg
    Offline

    warayg Опытный в 1С

    Регистрация:
    1 июл 2011
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    В принципе мне сумма и нужна просто хотел добавить себестоимость на 1 ед. товара, в общем и так пойдёт.
    Ех... теперь другая проблема

    [​IMG]

    эта сумма ("себестоимость") не привязывается к товару, везде по накладной одинаковая ((

Поделиться этой страницей