Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 окт 2024, 04:24

Маршрутный лист

Автор Яна93, 15 июн 2012, 12:30

0 Пользователей и 2 гостей просматривают эту тему.

Яна93

Помогите пожалуйста с кодом программы..в маршрутных листах хочу ввести в графе примечание отметку о доверенностях (н/ф). Нашла в Реализации в шапке эту Нф...и теперь хочу применить его в коде...нашла отрывок кода куда можно внести добавление
   таб=создатьОбъект("Таблица");
   таб.ИсходнаяТАблица("ТАблица");
   таб.вывестиСекцию("Шапка");
   
   выбратьстроки();
   пока получитьСтроку()=1 цикл
      ном=ном+1;
      таб.вывестиСекцию("строка");
      если пустоеЗначение(КомандаПечатиТТН)=0 тогда
         ПечатьРН(КомандаПечатиТТН, СразуНаПринтер);
      конецЕсли;
   КонецЦикла;
   
   если ПечатьПЛ=0 тогда
      возврат;
   КонецЕсли;

я в затруднении...не зная как это записать в коде..Прошу Вашей помощи..

Яна93

Помогите пожалуйста если кто знает как это в коде отобразить..у меня как у бухгалтера не выходит ни чего с кодом... :(

Яна93

ни кто так и не отозвался...может я не так ясно изложила вопрос? и по поводу кода который скопировала сюда...возможно не верно его скопировала..там его просто много...а я взяла ту часть в которой вызывается печатная форма таблицы под названием Таблица..вот и скопировала что посчитала более правильным... :(

volodya1122

1. Укажите название конфигурации (Помощь=>О программе) (Сначала там идет версия платформы а потом название конфигурации и её версия- вот это и нужно сообщить. 
После этого может кто-то сможет помочь....
2. Думаю Вам лучше вызвать программиста - это будет быстрее и надёжнее.

Яна93

1с Предприятие 7.7 Торговля и склад..


вот код маршрутного листа..и снимок таблицы которую описывала..

Процедура ПечатьПЛ(ПечатьПЛ=1, КомандаПечатиТТН="",СразуНаПринтер=0);
   если количествоСтрок()=0 тогда
      возврат;
   КонецЕсли;
   ЧислоТочек=0;
   ТабНакл=СоздатьОбъект("ТаблицаЗначений");
   ВыгрузитьТабличнуюЧасть(ТабНакл,"ДокОтгрузки");
   ТабНакл.НоваяКолонка("ТТ");
   ТабНакл.НоваяКолонка("Сумма");
   нф=0;
   ТабНакл.ВыбратьСтроки();
   Пока ТабНакл.ПолучитьСтроку()=1 Цикл
      ТабНакл.ТТ=ТабНакл.ДокОтгрузки.Контрагент;
      ТабНакл.Сумма=0;                         
      ЕСЛИ ТАбНАкл.ДокОТгрузки.Нф=1 Тогда
         нф=1;
      КонецЕСли;   
   КонецЦикла;
   ТабНакл.УдалитьКолонку("ДокОтгрузки");
   ТабНакл.Свернуть("ТТ","Сумма")   ;
   ЧислоТочек=ТабНакл.КоличествоСтрок();
   //Ч=0;
   //М=0;
   //С=0;
   //ТекущееВремя(Ч,М,С);
   печДатаВремя=""+текущаяДата()+" "+ТекущееВремя();
   //печДатаВремя=ТекущееВремя();
   
   ном=0;
   таб=создатьОбъект("Таблица");
   таб.ИсходнаяТАблица("ТАблица");
   таб.вывестиСекцию("Шапка");
   
   выбратьстроки();
   пока получитьСтроку()=1 цикл
      ном=ном+1;
      таб.вывестиСекцию("строка");
      если пустоеЗначение(КомандаПечатиТТН)=0 тогда
         ПечатьРН(КомандаПечатиТТН, СразуНаПринтер);
      конецЕсли;
   КонецЦикла;
   
   если ПечатьПЛ=0 тогда
      возврат;
   КонецЕсли;
   
   Таб.ВывестиСекцию("Подвал");
   Таб.ПараметрыСтраницы(2,,,,,,,,,1);
   //Таб.Защита(Константа.ФлагЗащитыТаблиц);
   Таб.ТолькоПросмотр(1);
   если СразуНаПринтер=0 тогда
      Таб.Показать("Маршрутный лист","");
   иначе
      Таб.Напечатать(0);
   КонецЕсли;                         

скопировала только эту часть потому что только он ссылается на таблицу под именем Таблица..остальное на другую печатную форму...

volodya1122

Торговля и склад.....
Вместо точек желательно указать циферки (версия конфигугации), и для какой страны

volodya1122

Не совсем понял суть вопроса. Догадываюсь, что на печатной форме нужно вывести значение "НФ".
Если НФ=0 тогда одно значение, а если НФ=1 тогда другое значение. По приаеденному коду вижу что оно может принимать значение только 0 или 1.
Еще одно наблюдение: если хотя бы в одном ДокОтгрузки есть "НФ"=1 то в вашем коде "НФ"=1.
Что из этого следует. Вам нужно на печатной форме вставить например текст "Есть" и "Нет" (соответственно для "НФ" =1 и "НФ"=0.
Тогда в нужном месте на печатной форме на ячейк выбрать "Свойства". Указать Тип "Выражение".
И в ячейке написать такой код:

?(НФ=1,"Есть","Нет")

В модуле ничего менять ненужно.

Яна93

Спасибо Володя за то что помогаешь:) в общем как я поняла - в ячейке столбца просто напишу следующее и укажу его как выражение и оно примет следующий вид <?(НФ=1,"Есть","Нет")> а что означает на языке 1с вопросительный знак перед скобкой..спрашиваю из интереса)

volodya1122

Конструкция:
Если НФ=1 тогда
Значение="Есть";
Иначе
Значение="Нет";
КонецЕсли;

тебе знакома?
Это тоже самое только сокращенно.

Яна93

вот у меня наверное жизни не хватит чтобы на столько изучить 1с) завтра надо будет попробывать так написать) а если я добавлю к примеру еще колонку ну чтобы в ней вывести номера телефонов торговых агентов...которые набили накладную...там выражение в колонке будет примерно таким <спр.физлицо.телефон> ? (думаю глупость написала) :))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск