Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: изменить макет налоговой накладной
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
onsamuy
Прошу совета. Попросили в печатной форме налоговой накладной отображать номер свидетельства плательщика ндс (покупателя) "выравниванием" по правому краю.

Вот цикл который присваивает значение параметрам макета;
НомерСвидетельстваКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,  "НомерСвидетельства,",Ложь);
            Если    Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажа
                ИЛИ Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажаСписаниеОС
                   ИЛИ НЕ ЗначениеЗаполнено(НомерСвидетельстваКонтрагента)
                ИЛИ Найти("0123456789",Лев(СокрЛ(НомерСвидетельстваКонтрагента),1)) = 0 Тогда
                НомерСвидетельстваКонтрагента = "0000000000";
            КонецЕсли;


Для Инд = 1 По 10 Цикл
         ОбластьМакета.Параметры["НомерСвидетельстваКонтрагента_"+Инд] = Сред(НомерСвидетельстваКонтрагента, Инд, 1);
КонецЦикла;



Я переделал цикл:

НомерСвидетельстваКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,  "НомерСвидетельства,",Ложь);
            Если    Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажа
                ИЛИ Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажаСписаниеОС
                   ИЛИ НЕ ЗначениеЗаполнено(НомерСвидетельстваКонтрагента)
                ИЛИ Найти("0123456789",Лев(СокрЛ(НомерСвидетельстваКонтрагента),1)) = 0 Тогда
                НомерСвидетельстваКонтрагента = "0000000000";
            КонецЕсли;
            
            ДлинаНомСвид = СтрДлина(НомерСвидетельстваКонтрагента);
            Инд=10;
            Пока ДлинаНомСвид <> 0 Цикл
                ОбластьМакета.Параметры["НомерСвидетельстваКонтрагента_"+Инд] = Сред(НомерСвидетельстваКонтрагента, ДлинаНомСвид, 1);
                ДлинаНомСвид=ДлинаНомСвид-1;
                Инд=Инд-1;
            КонецЦикла;


Все работает, но мне не нравится, как то "по школьному". Гуру, подскажите, как лучше это сделать
Ardi
НомерСвидетельстваКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,  "НомерСвидетельства,",Ложь);
            Если    Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажа
                ИЛИ Шапка.ВидОперации = Перечисления.ВидыОперацийНалоговаяНакладная.УсловнаяПродажаСписаниеОС
                   ИЛИ НЕ ЗначениеЗаполнено(НомерСвидетельстваКонтрагента)
                ИЛИ Найти("0123456789",Лев(СокрЛ(НомерСвидетельстваКонтрагента),1)) = 0 Тогда
                НомерСвидетельстваКонтрагента = "0000000000";
            КонецЕсли;
//=========================
НомерСвидетельстваКонтрагента=Прав("                           "+СокрЛП(НомерСвидетельстваКонтрагента),10); //++
//=========================
Для Инд = 1 По 10 Цикл
         ОбластьМакета.Параметры["НомерСвидетельстваКонтрагента_"+Инд] = Сред(НомерСвидетельстваКонтрагента, Инд, 1);
КонецЦикла;
onsamuy
Супер
komix
Хелп помогите юзеру хотел сделать что б номер свидетельства НДС ровнялся на правую сторону, а в итоге натворил что теперь не открываются налоговые сообще(((
вот такое пишет версия 8.1: " Поле обьекта не обнаружено (НомерСвидетельстваОрганизации_2)

{Документ.НалоговаяНакладная(984)}: Поле объекта не обнаружено (НомерСвидетельстваОрганизации_2)
ОбластьМакета.Параметры["НомерСвидетельстваОрганизации_"+Инд] = Сред(НомерСвидетельстваОрганизации, Инд, 1);


ХЕЛП МИ 09000000.gif
pablo
Проблема в макете. Что-то Вы лишнее удалили
Kutuzov
Цитата(komix @ 05.07.11, 16:31) необходимо зарегистрироваться для просмотра ссылки
Хелп помогите юзеру хотел сделать что б номер свидетельства НДС ровнялся на правую сторону, а в итоге натворил что теперь не открываются налоговые сообще(((
вот такое пишет версия 8.1: " Поле обьекта не обнаружено (НомерСвидетельстваОрганизации_2)

{Документ.НалоговаяНакладная(984)}: Поле объекта не обнаружено (НомерСвидетельстваОрганизации_2)
ОбластьМакета.Параметры["НомерСвидетельстваОрганизации_"+Инд] = Сред(НомерСвидетельстваОрганизации, Инд, 1);


ХЕЛП МИ 09000000.gif


НомерСвидетельстваОрганизации_2 а откуда тут 2 взялось?? ОбластьМакета.Параметры["НомерСвидетельстваОрганизации_"+Инд] = Сред(НомерСвидетельстваОрганизации, Инд, 1); тут его нет
5_kopeek
Цитата(Kutuzov @ 06.07.11, 0:09) необходимо зарегистрироваться для просмотра ссылки
НомерСвидетельстваОрганизации_2 а откуда тут 2 взялось?? ОбластьМакета.Параметры["НомерСвидетельстваОрганизации_"+Инд] = Сред(НомерСвидетельстваОрганизации, Инд, 1); тут его нет

Мда... Когда инд=2, тогда "НомерСвидетельстваОрганизации_"+Инд=НомерСвидетельстваОрганизации_2.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.