7.7 Прописать налоговые ставки в номенклатуре

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

  1. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Доброго дня!

    Конфа Бух 4.5

    При автоматическом внесении большого списка номенклатуры половина занеслась без налоговых ставок.
    Вчера пытался написать обработку для заполнения реквизита НДС что-то так и не получилось.

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

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    [sub]не надо искать по реквизиту[/sub]
    [sub]пробегись по всей номенклатуре, исключая группы[/sub]
    [sub]почитай про периодические реквизиты[/sub]
  3. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Сформировать() 
    НачатьТранзакцию();
    
    Ном =
    СоздатьОбъект("Справочник.Номенклатура");
    Ном.ВыбратьЭлементы() ;
    Пока Ном.ПолучитьЭлемент() = 1 Цикл
    Если Ном.ЭтоГруппа() = 1 Тогда
    Продолжить;
    Если Ном.СтавкаНДС=0 тогда
    Ном.СтавкаНДС.Установить(ВыбСтавкиНДС);
    КонецЕсли;
    КонецЕсли;
    Ном.Записать();
    КонецЦикла;   
    ЗафиксироватьТранзакцию();
    КонецПроцедуры
    
    так? чтото не проставляет всеравно
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    Если Ном.СтавкаНДС.Получить???=0 тогда
    Ном.СтавкаНДС.Установить(ВыбСтавкиНДС,Дата???);
    КонецЕсли;


    сказал же почитай про периодические реквизиты

    ЗЫ: ни хрена код не вставляется
  5. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    вернее за там сегодня все ставки есть а за январь месяц половина номенклатуры без ставок

    да дату ставлю и безрезультатно

    Код:
    Если Ном.СтавкаНДС=0 тогда
    Ном.СтавкаНДС.Установить(НачДата,ВыбСтавкиНДС);
    КонецЕсли;
  6. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    что за конфа-то, в бух и тис по-разному, а в самописке ваще неизвестно что

    для бухии так
    СтавкаНДС = Номенклатура.СтавкаНДС.Получить(Какая-то дата)).Ставка;
    Если СтавкаНДС=0 Тогда
    Спр=создатьобъект("Справочник.СтавкиНдС")
    спр.найтистрокуснужнойставкой
    Номенклатура.СтавкаНДС.Установить(Какая-то дата, Спр.ТекущийЭлемент()))

    зы: это рыба для направления куда копать
  7. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    во, проморгал, что бух
    вместо
    Спр=создатьобъект("Справочник.СтавкиНдС")
    спр.найтистрокуснужнойставкой

    Номенклатура.СтавкаНДС.Установить(Какая-то дата, Константа.ОсновнаяСтавкаНДС)
  8. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    не выходить золотая рыбка) блин


    Код:
    Процедура Сформировать() 
    НачатьТранзакцию();
    Ном = СоздатьОбъект("Справочник.Номенклатура");
    Ном.ВыбратьЭлементы() ;
    Пока Ном.ПолучитьЭлемент() = 1 Цикл
    Если Ном.ЭтоГруппа() = 1 Тогда
    Продолжить;
    СтавкаНДС = Ном.СтавкаНДС.Получить(НачДата).Ставка;
    Сообщить("	 НДС="+СтавкаНДС);
    он мне даже не пишет ничего
  9. TopicStarter Overlay
    daab
    Offline

    daab Опытный в 1С

    Регистрация:
    14 окт 2011
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Если Ном.ЭтоГруппа() = 1 Тогда

    надо убрать

    и все заработало ура!
  10. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    конецесли в приведенном фрагменте не вижу
    вот и не отрабатывает

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