Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 14:17
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите с отчетом....  (Прочитано 3459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн didigo

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-04-02
  • Сайт: 
  • Профессия: Программист 7.7
помогите новичку пожалуйста...
не получается переделать на другую базу....


Процедура Посчитать(НачДата, КонДата, Счет, КорСчет, мСчет, зСчет, НаклРасходы)

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

   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
   Ит.ВыполнитьЗапрос(НачДата, КонДата, КорСчет, Счет, , 2, , );
   
   Ит.ВыбратьСубконто();
   
   Пока Ит.ПолучитьСубконто() = 1 Цикл
      ГП = Ит.Субконто();
      Стр = 0;
      Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда
         ГС = табНом.ПолучитьЗначение(Стр, "ГС");
         ГК = Ит.ДО(3);
         СС = ГС / ГК;
         табНом.УстановитьЗначение(Стр, "ГК", ГК);
         табНом.УстановитьЗначение(Стр, "СС", СС);
      Иначе                 
         Сообщить("Не нашел 1 !! "+ГП);
      КонецЕсли;
   КонецЦикла;

   Ном = СоздатьОбъект("Справочник.Номенклатура");
   Ном.ВыбратьЭлементы();
   
   табНом.ВыбратьСтроки();
   
   Если Отчет = 0 Тогда
      Пока табНом.ПолучитьСтроку() = 1 Цикл
            Если Ном.НайтиЭлемент(табНом.ГП) = 1 Тогда
              Ном.Себестоимость.Установить(НачДата, табНом.СС);
            КонецЕсли;
      КонецЦикла;
   КонецЕсли;
   
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
   Ит.ИспользоватьКорСубконто(ВидыСубконто.Материалы);
   
   Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет, мСчет, , 2, , );
   Ит.ВыбратьСубконто();
   
   Пока Ит.ПолучитьСубконто() = 1 Цикл
      ГП = Ит.Субконто();
      Стр = 0;
      Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда
         табКор = СоздатьОбъект("ТаблицаЗначений");
         табКор.НоваяКолонка("К");
         табКор.НоваяКолонка("С");
         
         Ит.ВыбратьКорСубконто();
         Пока Ит.ПолучитьКорСубконто() = 1 Цикл
            табКор.НоваяСтрока();
            табКор.К = Ит.КорСубконто();
            табКор.С = Ит.КорДО();
         КонецЦикла;
         табНом.УстановитьЗначение(Стр, "МТ", табКор);
      Иначе                 
         Сообщить("Не нашел 2 !! "+ГП);
      КонецЕсли;
   КонецЦикла;

   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
   Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет, зСчет, , 2, , );
   Ит.ВыбратьСубконто();

   Пока Ит.ПолучитьСубконто() = 1 Цикл
      ГП = Ит.Субконто();
      Стр = 0;
      Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда
         табКор = Ит.ДО();
         табНом.УстановитьЗначение(Стр, "ЗТ", табКор);
      Иначе                 
         Сообщить("Не нашел 2 !! "+ГП);
      КонецЕсли;
   КонецЦикла;
   
   //
   Т = СоздатьОбъект("Таблица");
   табНом.ВыбратьСтроки();             
   ИтогоПрибыльОтПроизводства = 0;   
   Пока табНом.ПолучитьСтроку() = 1 Цикл
      Номен = табНом.ГП;     
      Т.ВывестиСекцию("Шапка");
      
      ВыпускБезПолуф = табНом.ГК;
      //СуммаВыпускБезПолуф = табНом.ГС;
      СуммаВыпускБезПолуф = Номен.Цена.Получить(НачДата) * ВыпускБезПолуф;
      Т.ВывестиСекцию("ВыпускБезПолуф");
      Т.ВывестиСекцию("ШапкаМатериалы");
      
      вт = табНом.МТ;
      вт.ВыбратьСтроки();
      
      Пока вт.ПолучитьСтроку() = 1 Цикл                           
         Матер = вт.К;
         МатериалНаПрод = вт.С;
         МатериалНа1Прод = вт.С / табНом.ГК;
         Т.ВывестиСекцию("Материалы");   
      КонецЦикла;
      
      ВсегоМатериаловНаПрод = вт.Итог("С");
      ВсегоМатериаловНа1Прод = ВсегоМатериаловНаПрод / табНом.ГК;
      Т.ВывестиСекцию("ВсегоМат");
      Т.ВывестиСекцию("ШапкаНакладныеРасходы");
      РасходыНаПрод = табНом.ЗТ;
      РасходыНа1Прод = табНом.ЗТ / табНом.ГК;
      Т.ВывестиСекцию("НакладныеРасходы");
      ЗатратыНаСС = ВсегоМатериаловНаПрод + РасходыНаПрод;
      Себестоимость1Бут = ЗатратыНаСС / табНом.ГК;
      Т.ВывестиСекцию("Затраты");
      ПрибыльОтПроизводства = СуммаВыпускБезПолуф - ЗатратыНаСС;
      Т.ВывестиСекцию("Прибыль");
      ИтогоПрибыльОтПроизводства = ИтогоПрибыльОтПроизводства + ПрибыльОтПроизводства;
   КонецЦикла;
                
   Т.ВывестиСекцию("ИтогБезПолуф");
   Т.Показать();
   //
КонецПроцедуры 

Процедура ПерепровестиДокументы(НачДата, КонДата)
   Если Отчет = 0 Тогда
      Сообщить("Перепроводим документы");
      Док = СоздатьОбъект("Документ");
      Док.ВыбратьДокументы(НачДата, КонДата);
      
      Пока Док.ПолучитьДокумент() = 1 Цикл
         Если Док.ПометкаУдаления() = 0 Тогда
            Если Док.Проведен() = 1 Тогда
               Если
                  (Док.Вид() = "_03_АктСписанияМатериаловВодка") ИЛИ
                  (Док.Вид() = "_03_АктСписанияВодки") ИЛИ
                  (Док.Вид() = "_03_АктСписанияМатериаловСпирт") ИЛИ
                  (Док.Вид() = "_03_АктСписанияСпирта") ИЛИ
                  (Док.Вид() = "_03_АктСписанияНаВыпускМакарон")
               Тогда
                  Сообщить(Док.ТекущийДокумент());
                  Док.Провести(0, 2);
                  Док.Записать();                 
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;   
      КонецЦикла;
      
      Сообщить("Перепроведение завершено");
   КонецЕсли;
   
КонецПроцедуры

//*******************************************
Процедура Сформировать()   
   НачДата = НачМесяца(ДатаОт);
   КонДата = КонМесяца(ДатаОт);
   
   Посчитать(НачДата, КонДата, "900.0", "221.0", "207.0", "900.5", "Затраты для водки");
   Посчитать(НачДата, КонДата, "900.1", "221.1", "207.1", "900.5", "Спирт");
   Посчитать(НачДата, КонДата, "900.2", "221.2", "207.2", "900.5", "Макар");
   
   ПерепровестиДокументы(НачДата, КонДата);
КонецПроцедуры


Оффлайн didigo

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-04-02
  • Сайт: 
  • Профессия: Программист 7.7
вот от сюда дальше не идет....

вт = табНом.МТ;
  вт.ВыбратьСтроки();
  Пока вт.ПолучитьСтроку() = 1 Цикл               
   Матер = вт.К;
   МатериалНаПрод = вт.С;
   МатериалНа1Прод = вт.С / табНом.ГК;
   Т.ВывестиСекцию("Материалы");
  КонецЦикла;

Оффлайн didigo

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-04-02
  • Сайт: 
  • Профессия: Программист 7.7
что б присвоить МТ


   Пока Ит.ПолучитьСубконто() = 1 Цикл
      ГП = Ит.Субконто();
      Стр = 0;
      Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда
         табКор = СоздатьОбъект("ТаблицаЗначений");
         табКор.НоваяКолонка("К");
         табКор.НоваяКолонка("С");
         
         Ит.ВыбратьКорСубконто();
         Пока Ит.ПолучитьКорСубконто() = 1 Цикл
            табКор.НоваяСтрока();
            табКор.К = Ит.КорСубконто();
            табКор.С = Ит.КорДО();
         КонецЦикла;
         табНом.УстановитьЗначение(Стр, "МТ", табКор);
      Иначе                 
         Сообщить("Не нашел 2 !! "+ГП);
      КонецЕсли;
   КонецЦикла;

вот тут не присваивается!

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
Надо смотреть что за ошибка.
ибо табКор = СоздатьОбъект("ТаблицаЗначений");
какаято там ТЗ есть
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
хотя если оно сообщить дает Сообщить("Не нашел 2 !! "+ГП); тогд анету там ничего, да
надо проверять
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн didigo

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-04-02
  • Сайт: 
  • Профессия: Программист 7.7
Надо смотреть что за ошибка.
ибо табКор = СоздатьОбъект("ТаблицаЗначений");
какаято там ТЗ есть

вт.ВыбратьСтроки();
{Отчет.РасчетСебестоимостиПродукции.Форма.Модуль{118}}: Значение не представляет агрегатный объект(ВыбратьСтроки)

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
Да. не записывается ТЗ.
отладчег надобно смотреть
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн didigo

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-04-02
  • Сайт: 
  • Профессия: Программист 7.7
в отладчике МТ не присваивает!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 262
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal