gifts2017

Еще об ошибках в новых налоговых накладных конфигурации "Бухгалтерский учет для Украины" (релиз 280)

Опубликовал Александр Прокопенко (babylon_5) в раздел Программирование - Практика программирования

Ошибки и недоработки в налоговой накладной и приложении 2 (релиз 280)

Новые налоговые 1С точно сделала тяп-ляп. Просто чтобы отвязались. Похоже, что команды разработчиков даже держали в руках различные постановления. Так, в печатных формах для 8-ки даты сделаны сплошными клетками (т.е. 15012011), а в 7.7 с точками (15.01.2011). И как правильно?.. Правда у меня уже бухгалтера хотели дату без точек.

UPD. Исправленные печатные формы выложил тут.

Налоговая накладная. Почему-то не сделан выбор вида договора. В 8-ке он есть, а в 7.7 будьте добры писать ручками. Бухам это дело не понравилось, и они потребовали прекратить ущемление прав и свобод по платформенному признаку. Чтобы сделать выбор вида договора из списка:

1) на форме налоговой в слое "дополнительный" убираем поле "ВидДоговора" и на его место устанавливаем "Поле со списком" (аналогичное имеющемуся полю "спТипПричины" только покороче : )).

Свойства: идентификатор - 'спВидДоговора'; формула - 'ИзмВидДоговора()' (см. скриншот)

В тексте модуля формы:

1) перед процедурой "ПриОткрытии" вставляем две новых:

 

// ===============================
Процедура ИзмВидДоговора()
    Инд = спВидДоговора.ТекущаяСтрока();
    Если Инд <> 0 Тогда
        ТекВидДоговора = спВидДоговора.ПолучитьЗначение(Инд);
        Если ТекВидДоговора <> ВидДоговора Тогда
            ВидДоговора = ТекВидДоговора;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

// ===============================
Процедура ЗаполнитьВидДоговора()
    спВидДоговора.УдалитьВсе();
    спВидДоговора.ДобавитьЗначение("Договір поставки");
    спВидДоговора.ДобавитьЗначение("Договір купівлі-продажу");
    спВидДоговора.ДобавитьЗначение("Договір комісії");
    спВидДоговора.ДобавитьЗначение("Договір бартерної поставки");
    спВидДоговора.ДобавитьЗначение("Договір консигнації");
    спВидДоговора.ДобавитьЗначение("Договір поруки");
    спВидДоговора.ДобавитьЗначение("Договір доручення");
    спВидДоговора.ДобавитьЗначение("Договір довірчого управління");
    спВидДоговора.ДобавитьЗначение("Договір відповідального зберігання");
    спВидДоговора.ДобавитьЗначение("Договір складського зберігання");
    спВидДоговора.ДобавитьЗначение("Договір про надання посередницьких послуг");
    спВидДоговора.ДобавитьЗначение("Договір про виконання роботи");
    спВидДоговора.ДобавитьЗначение("Договір про надання послуг");
    спВидДоговора.ДобавитьЗначение("Договір про інформаційно-довідкове обслуговування");
    спВидДоговора.ДобавитьЗначение("Договір поставки оптової партії");
    // если ВидДоговора есть в новом списке - спозиционируемся на него
    Инд = спВидДоговора.НайтиЗначение(СокрЛП(ВидДоговора));
    Если Инд = 0 Тогда
        // нет такого в списке
        спВидДоговора.ТекущаяСтрока(1);
        ВидДоговора = спВидДоговора.ПолучитьЗначение(1);
    Иначе
        спВидДоговора.ТекущаяСтрока(Инд);
    КонецЕсли;

КонецПроцедуры



2) в процедуре "ПриОткрытии" добавляем вызов  процедуры 'ЗаполнитьВидДоговора()'.

Например перед или после вызова 'ЗаполнитьТипыПричин()'.

 

Приложение 2. Даже когда у себя документы не оставляем печатает в шапке причину 02.

Для исправления в модуле формы правим процедуру печати.

Процедура 'Печать2011'. Строку 156 нужно взять в условие. Изначально часть процедуры выглядит так:

   

Для Страница = 1 По 2 Цикл
        Таб.ВывестиСекцию( "Пустота" );
        Если Страница = 1 Тогда
            Оригинал = ?(НалоговаяНакладная.Оставляем = 1, "","Х");;
            Копия = "";
            ЕРПН = ?(ЕРНН = 1, "Х","");
            ОстаетсяПеч = ?(НалоговаяНакладная.Оставляем = 1, "Х","");
            ТипПричиныПеч = Сред(НалоговаяНакладная.ТипПричины,2,2);
        ИначеЕсли Страница = 2 Тогда
            Копия = "Х";
            Оригинал = "";
            ТипПричиныПеч = "";
            ЕРПН = "";
            ОстаетсяПеч = "";
        КонецЕсли;



 

После исправления:

   

Для Страница = 1 По 2 Цикл
        Таб.ВывестиСекцию( "Пустота" );
        Если Страница = 1 Тогда
            Оригинал = ?(НалоговаяНакладная.Оставляем = 1, "","Х");;
            Копия = "";
            ЕРПН = ?(ЕРНН = 1, "Х","");
            ОстаетсяПеч = ?(НалоговаяНакладная.Оставляем = 1, "Х","");
            Если НалоговаяНакладная.Оставляем = 1 Тогда
                ТипПричиныПеч = Сред(НалоговаяНакладная.ТипПричины,2,2);
            КонецЕсли;
        ИначеЕсли Страница = 2 Тогда
            Копия = "Х";
            Оригинал = "";
            ТипПричиныПеч = "";
            ЕРПН = "";
            ОстаетсяПеч = "";
        КонецЕсли;



 

Если публикация оказалась вам полезной - не забудьте вернуться и поставить плюсик.

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Литовченко (kompas-dm) 21.01.11 15:29
(0) В 7.7. : Можно, конечно, но эти ляпы не фатальны. Добьют и ручками. Релиз 280 промежуточный. Думаю, исправят.
А что делать, у кого нет 1С-ника :?:
2. Александр Прокопенко (babylon_5) 21.01.11 15:45
(1) Ну, например, то же что делают мои клиенты. Обращаться к внешнему 1С-нику. :D
А релиз... исправят, конечно. Только людям работать нужно сейчас, а не тогда когда исправят ляпы и ошибки.
3. Yw_prog (yw_prog) 27.01.11 10:23
Не могу скачать печатную форму :(
4. xxl-30 (xxl-30) 27.01.11 13:29
неправильно убирать с формы документа поле ВидДоговора, а если захочется вписать что-то другое?
коректнее поставить у поля в свойстве галку "Имеет кнопку выбора" в процедуру
Процедура ПриНачалеВыбораЗначения(Рекв,ФлагСтандОбр)
вставить условие

		ИначеЕсли  Рекв = "ВидДоговора" Тогда
		ВыбратьВидДоговора();  
		ФлагСтандОбр = 0;	

добавить процедуру
Процедура ВыбратьВидДоговора()
	Перем Выб;
	спВидДоговора = СоздатьОбъект("СписокЗначений");
    спВидДоговора.ДобавитьЗначение("Договір поставки");
    спВидДоговора.ДобавитьЗначение("Договір купівлі-продажу");
    спВидДоговора.ДобавитьЗначение("Договір комісії");
    спВидДоговора.ДобавитьЗначение("Договір бартерної поставки");
    спВидДоговора.ДобавитьЗначение("Договір консигнації");
    спВидДоговора.ДобавитьЗначение("Договір поруки");
    спВидДоговора.ДобавитьЗначение("Договір доручення");
    спВидДоговора.ДобавитьЗначение("Договір довірчого управління");
    спВидДоговора.ДобавитьЗначение("Договір відповідального зберігання");
    спВидДоговора.ДобавитьЗначение("Договір складського зберігання");
    спВидДоговора.ДобавитьЗначение("Договір про надання посередницьких послуг");
    спВидДоговора.ДобавитьЗначение("Договір про виконання роботи");
    спВидДоговора.ДобавитьЗначение("Договір про надання послуг");
    спВидДоговора.ДобавитьЗначение("Договір про інформаційно-довідкове обслуговування");
    спВидДоговора.ДобавитьЗначение("Договір поставки оптової партії");

	Выб = ВидДоговора; 
	Если спВидДоговора.ВыбратьЗначение(Выб,,,,2) = 1 Тогда
		ВидДоговора = Выб;
	КонецЕсли;
КонецПроцедуры
...Показать Скрыть


ещо для полного счастья необходимо обработать телефон убрав скобки пробелы тире
Функция ФорматироватьТелефон(Телефон)   
	Телефон = СокрЛП(Телефон); 
	НовТелефон = "";
	Для а = 1 по СтрДлина(Телефон) Цикл 
		ТекСимвол = Сред(Телефон,а,1);  
		Если Найти(",;", ТекСимвол) > 0 Тогда  
			//это разделитель номеров, дальше не ищем
			Прервать;
		ИначеЕсли (КодСимв("0") <= КодСимв(ТекСимвол)) и (КодСимв(ТекСимвол) <= КодСимв("9")) Тогда
			//это цифра
			НовТелефон=НовТелефон + ТекСимвол;    
		КонецЕсли;
	КонецЦикла;
	Возврат НовТелефон;
КонецФункции
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа