7.7 Бонус по поставщикам

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

  1. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    помогите, пожалуйста, реализовать проверку счета на предмет производилась ли оплата бонуса от поставщика.
    как вообще проверять счета?
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    По логике - смотреть структуру подчиненности документа.

    З.Ы. Учитесь ПРАВИЛЬНО задавать вопросы - озвучьте конфигурацию
  3. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    комплексная конфигурация 4.5(7.70.456)
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Уже теплее. Теперь объясните ситуацию: какой бонус и как он оплачивается (какие действия вы производите). И наконец что вы хотите проверять при выписке счета?
  5. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    мне нужно проверять именно сами счета (конкретно 62.1 и 62.2) есть ли на них по кредиту деньги от поставщика. и если есть, то суммы (по каждому поставщику отдельно) записывать в табличный документ.
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Тьфу! Мне почему-то под термином "счет" показался ДОКУМЕНТ. Все элементарно - используте запрос к БИ с фильтром
  7. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    пытаюсь но я совсем еще новичок в этом деле и не знаю всех тонкостей. приходится до всего додумываться самостоятельно.
    на данный момент вместо суммы по конкретному контрагенту берется сумма оборота по кредиту счета.
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104

    ИспользоватьСубконто(<?>,,,)
    Синтаксис:
    ИспользоватьСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
    Назначение:
    Устанавливает режим получения итогов методом ''ВыполнитьЗапрос'' в разрезе субконто.Метод слудет вызывать до вызова метода ''ВыполнитьЗапрос''. Метод может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.
  9. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    дело в том в обработке которую я доделываю уже есть запрос, который обращается к другому счету. для того, чтобы работать с тем счетом который нужен мне , запрос надо делать другой или дописывать уже существующий (и если да то как).
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не видя текста ничего сказать не могу.
    Слишком ослабли в последнее время телепатические способности)))
  11. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура Сформировать()  
    
    СпрКонтр=СоздатьОбъект("Справочник.Контрагенты");
    ТаблКонт=СоздатьОбъект("ТаблицаЗначений");
    ТаблКонт.НоваяКолонка("Контрагент");
    ТаблКонт.НоваяКолонка("СуммаОплаты","Число",15,2,,,,);   
    ТаблКонт.НоваяКолонка("СуммаПоставки","Число",15,2,,,,); 
    ТаблКонт.НоваяКолонка("ПроцентБонуса","Число",15,2,,,,); 
    ТаблКонт.НоваяКолонка("ОплатаИлиПоставка","Строка",,,,10); 
    ТаблКонт.НоваяКолонка("Кт_61");
    ТаблКонт.НоваяКолонка("Кт_62");
    
    СпрКонтр.ВыбратьЭлементы();
    
    Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
    Если СпрКонтр.Бонус<>0 Тогда
    ТаблКонт.НоваяСтрока();
    ТаблКонт.Контрагент= СпрКонтр.ТекущийЭлемент(); 
    ТаблКонт.ПроцентБонуса= СпрКонтр.Бонус; 
    Если СпрКонтр.БазаБонуса=0 Тогда
    ТаблКонт.ОплатаИлиПоставка="Поставка";
    Иначе
    ТаблКонт.ОплатаИлиПоставка="Оплата";
    КонецЕсли;  
    
    КонецЕсли;
    
    КонецЦикла;      
    СписокБонусов = СоздатьОбъект("СписокЗначений"); 
    
    
    ТаблКонт.ВыбратьСтроки();  
    Пока ТаблКонт.ПолучитьСтроку()=1 Цикл
    СписокБонусов.ДобавитьЗначение(ТаблКонт.Контрагент);
    КонецЦикла;
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ИспользоватьПланСчетов(ОсновнойПланСчетов());
    БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты, СписокБонусов, 2); 
    БухИт.ВыполнитьЗапрос(НачДата, КонДата,"60",,,,,);
    БухИт.ВыбратьСубконто();
    
    Пока БухИт.ПолучитьСубконто() = 1 Цикл
    Если (БухИт.Субконто().БазаБонуса=0) и (БухИт.КО() > 0) Тогда   
    СтрокаТаблицы=ПустоеЗначение(СтрокаТаблицы);
    ТаблКонт.НайтиЗначение(БухИт.Субконто(),СтрокаТаблицы,); 
    ТаблКонт.УстановитьЗначение(СтрокаТаблицы,"СуммаПоставки",БухИт.КО());
    ИначеЕсли (БухИт.Субконто().БазаБонуса=1) и (БухИт.ДО() > 0) Тогда  
    СтрокаТаблицы=ПустоеЗначение(СтрокаТаблицы);
    ТаблКонт.НайтиЗначение(БухИт.Субконто(),СтрокаТаблицы,);
    ТаблКонт.УстановитьЗначение(СтрокаТаблицы,"СуммаОплаты",БухИт.ДО());	
    КонецЕсли;
    ///////////////// -- от сюда
    Если БухИт.КО() > 0 Тогда
    СтрокаТаблицы=ПустоеЗначение(СтрокаТаблицы);
    ТаблКонт.НайтиЗначение(БухИт.Субконто(),СтрокаТаблицы,);
    ТаблКонт.УстановитьЗначение(СтрокаТаблицы,"Кт_61", БухИт.КО());
    КонецЕсли;
    ///////////////// -- до сюда
    КонецЦикла;
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ВывестиСекцию("Шапка");
    Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);   
    ИтогБонуса=0;
    ТаблКонт.ВыбратьСтроки();
    Пока ТаблКонт.ПолучитьСтроку()=1 Цикл
    Таб.ВывестиСекцию("Строка");  
    ИтогБонуса=	ИтогБонуса+(ТаблКонт.СуммаПоставки+ТаблКонт.СуммаОплаты)*ТаблКонт.ПроцентБонуса/100;
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать","");
    
    КонецПроцедуры
    
    

    то что выделено красным надо доводить до ума.

    [warn="Внимание"]Пользуйтесь тегами[/warn]
  12. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) В список контрагентов попадают группы - зачем?
    2) При выгрузке в СписокБонусов используте метод выгрузить, а не цикл
    3) Непонятна строка
    Код:
    СтрокаТаблицы=ПустоеЗначение(СтрокаТаблицы);
    
    4) Указывайте явно колонку в методе НайтиЗначение
    5) Присмотритесь к методу ВключатьСубсчета
  13. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    сразу оговорюсь занимаюсь этим всего месяц поэтому многого могу не понимать.

    1) я честно говоря не вижу где это происходит
    2) сделала, получилось
    3) всю процедуру писала не я поэтому не знаю зачем там эта строка. но при попытке закомментить эту строку все три раза когда она встречается - перестали выводиться числовые данные во всех строках кроме первой. а в первой появляются тогда совсем другие суммы.
    но если убирать не все разом, а оставлять либо третью, либо первую и вторую вместе, то все работает как надо.
    4) при попытке указать колонку выдает "Число фильтров субконто превысило допустимое значение!"
    5) не совсем понимаю где он мне может пригодиться.
  14. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Там где в цикле заполняете ТаблКонт. Нужно добавить условие
    Код:
    Если Спр.ЭтоГруппа()=1 Тогда
    Продолжить;
    КонецЕсли;
    
    
    2) Просто так правильнее и быстрее)))
    3) Нужно проще
    Код:
    СтрокаТаблицы=0;
    
    
    4) Имелось ввиду вот это:
    Код:
    ТаблКонт.НайтиЗначение(БухИт.Субконто(),СтрокаТаблицы,"Контрагент");
    
    
    5) Добавите еще 1 цикл с фильтром по кореспондирующему счету. Вам же нужно проверять оплату
  15. TopicStarter Overlay
    markvolberg
    Offline

    markvolberg

    Регистрация:
    29 сен 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    1) если я правильно понимаю то цикла заполнения ТаблКонт больше нет. там теперь Выгрузить.
    3) тоже исправила все ок )
    4) никак на это не реагирует
    5) попробую разобраться
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Нет - цикл заполнения ТЗ должен быдь. Выгрузить используйте при заполнении СпискаЗначений

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