• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

может кто делал?

  • Автор темы geny2010
  • Дата начала
G

geny2010

Здравствуйте!! Есть справочник Номенклатура куда забивается процент НДС , с нового года он стал 20%, оч нужна внешняя обработка по смене НДС во всех элементах справочника (Ставка НДС - периодический реквизит) , а то бухам приходится это делать руками и они звереют - может кто-нить делал уже?? ООООч прошу :ya_lamo:
 
H

Hryv

Какая хоть 1С у вас?
такая обработка в принципе 10 строк от силы
за пару минут сделать можно
 
G

geny2010

1с 7.7 )) Понимаю, что 7 строк и легко и жду, что будут гнобить))) Но нашла ваш форум и вдруг кто-нить поможет - я не программист))
 
H

Hryv

дело в том, что "1с 7.7" - этого недостаточно
Надо знать что такое у вас НДС - справочник или перечисление, а может просто число (мало ли что)
как реквизит справочника называется тоже неизвестно

Добавлено: а что за 2 месяца не успели руками перебить? :)
 
G

geny2010

НДС - это Справочник - Ставки НДС; реквизит в нем - ставка; В справочнике Номенклатура - реквизит - Ставка НДС;
 
V

vbs

В бухгалтерии есть стандартная обработка
SetTaxes
 
H

Hryv

Если стандартную не найдете, то примерно так

Код:
Процедура Сформировать()
СпрНДС = СоздатьОбъект("Справочник.СтавкиНДС");
Если СпрНДС.НайтиПоКоду("")=0 Тогда //внутри кавычек код нужной ставки
Сообщить("Не найдена ставка НДС");
Возврат;
КонецЕсли;

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

Но в любом случае советую сначала сделать копию базы
 
G

geny2010

)))) не успели)) Видели бы вы этих бухгалтеров :) Ещё вопрос - сохраняю обработку как внешний отчет - когда пытаюсь открыть в 1с - ниче не грузится вообще , форма не появляется - не ругайтесь сильно))) почему это??? :KillMe: и когда в интерфейс добавляю - тоже самое((
 
H

Hryv

может прав нет?
хотя я точно не понял вопроса
 
G

geny2010

с правами все ок)) открываешь внешний отчет в 1с и оно секунду думает и ничего - может код поможет

Перем ТипПоля;


Процедура ОК()
Форма.Параметр.Установить("ОК", 1);
Форма.Параметр.Установить("Дата", Д);
Если ТипПоля = "" Тогда
Форма.Параметр.Установить("Значение", Значение);
ИначеЕсли ТипПоля = "ФЛАЖОК" Тогда
Форма.Параметр.Установить("Значение", Флажок);
ИначеЕсли ТипПоля = "ПОЛЕСОСПИСКОМ" Тогда
Форма.Параметр.Установить("Значение", ПолеСосписком.ТекущаяСтрока());
КонецЕсли;
КонецПроцедуры


Процедура ПриОткрытии()
Если (ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений") Тогда
Реквизит = Форма.Параметр.Получить("Реквизит");
Тип = Форма.Параметр.Получить("Тип");
Счет = Форма.Параметр.Получить("Счет");
НомерСубконто = Форма.Параметр.Получить("НомерСубконто");
Д = Форма.Параметр.Получить("Дата");
ТипПоля = Форма.Параметр.Получить("ТипПоля");
Если ТипПоля = "" Тогда
Если ТипЗначенияСтр(Счет) = "Счет" Тогда
Тип = Счет.ВидСубконто(НомерСубконто);
КонецЕсли;
Форма.Значение.НазначитьТип(Тип);
Значение = Форма.Параметр.Получить("Значение");
Если ТипЗначенияСтр(Значение) = "Справочник" Тогда
Значение.ИспользоватьВладельца(Форма.Параметр.Получить("Владелец"));
Форма.Значение.ВыборГруппы(0);
ИначеЕсли ТипЗначенияСтр(Значение) = "Счет" Тогда
Форма.Значение.ВыборГруппы(0);
КонецЕсли;
ИначеЕсли ТипПоля = "ФЛАЖОК" Тогда
Форма.Значение.Видимость(0);
Форма.ОчиститьЗначение.Видимость(0);
Форма.Текст.Видимость(0);
Форма.Флажок.Видимость(1);
Флажок = Форма.Параметр.Получить("Значение");
ИначеЕсли ТипПоля = "ПОЛЕСОСПИСКОМ" Тогда
Форма.Значение.Видимость(0);
Форма.ОчиститьЗначение.Видимость(0);
Форма.Текст.Видимость(0);
Значения = Форма.Параметр.Получить("ЗначенияСписка");
Для А=1 По Значения.РазмерСписка() Цикл
ПолеСоСписком.ДобавитьЗначение(Значения.ПолучитьЗначение(А));
КонецЦикла;
Форма.ПолеСоСписком.Видимость(1);
ПолеСоСписком.ТекущаяСтрока(Форма.Параметр.Получить("Значение"));
КонецЕсли;
Форма.Заголовок("Реквизит: "+Реквизит);
Иначе
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!