7.7 Товар и услуга в ТТН

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем doniel, 29 июл 2010.

  1. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Пожалуйста помогите новичку. Надо выводить в ТТН в одной строке товар, а в другой услугу.
    В строке, где услуга, недолжно, при печати документа ,выводится колличество, а сумма должна.
    Вся сумма за товар и услугу должна выводится. Кто может, подскажите пожалуйста где, что прописать.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Для начала озвучте конфигурацию... Код для бух и Тис отличается
  3. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    1с бухгалтерия
    Желательно по виду номенклатуре. Спасибо
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В процедуре Печать дожен быть такой кусок кода:

    Код:
    Кол = ?(ТабДок.Количество = 0, 1, ТабДок.Количество);
    Если Цел(СтавкаНДС) = СтавкаНДС Тогда
    ЦенаНаПечать = (ТабДок.Всего - ТабДок.НДС - ТабДок.НП)/Кол;
    СуммаНаПечать = ТабДок.Всего - ТабДок.НДС - ТабДок.НП;
    Иначе
    ЦенаНаПечать = (ТабДок.Всего - ТабДок.НП)/Кол;
    СуммаНаПечать = ТабДок.Всего - ТабДок.НП;
    КонецЕсли;
    //а вот эти строчки мы добавим
    Если ТабДок.Товар.ВидНоменклатуры.Выбран()=1 Тогда
    Если Найти(Строка(ТабДок.Товар.ВидНоменклатуры.ТипНоменклатуры), "Услуга")<>0 Тогда
    Кол=0;
    КонецЕсли;
    КонецЕсли;
    
    
    
    
  5. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Что то там такого нет
    Код:
    Процедура Печать()
    НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0);
    Таб = СоздатьОбъект("Таблица");
    Если (НомерТекущейФормы = 1) или (НомерТекущейФормы = 2) Тогда
    Таб.ИсходнаяТаблица("ТН2"); 
    Таб.ПараметрыСтраницы(1,100,0,5,5,5,5,,,1);
    ИначеЕсли (НомерТекущейФормы = 3) или (НомерТекущейФормы = 4)  Тогда
    Таб.ИсходнаяТаблица("ТТН"); 
    Таб.ПараметрыСтраницы(2,100,0,5,5,5,0,,,1);  
    
    ИначеЕсли (НомерТекущейФормы = 5) или (НомерТекущейФормы = 6)  Тогда
    Таб.ИсходнаяТаблица("ТТН");
    Таб.ПараметрыСтраницы(1,,0,5,5,5,5,,,1);
    КонецЕсли; 
    ПодразделениеОтправитель = МестоХранения;
    Франко();
    Лицензия = Сокрлп(Константа.Лицензия.Получить(ДатаДок)); 
    ЛицензияК = Сокрлп(Контрагент.Лицензия.Получить(ДатаДок)); 
    ЛицензияЗ = Сокрлп(Заказчик.Лицензия.Получить(ДатаДок));  
    Довер="";
    Если ПустоеЗначение(ДовНом) = 0 Тогда
    Довер="доверенность № "+ДовНом+" от  "+ДовДата;
    КонецЕсли;
    
    Сприлож = 0; 
    Валюта = Константа.ОсновнаяВалюта;  
    Вал = Валюта.Наименование;
    ЦеныВДоговоре = 1; // в рублях 
    ОплатаДоговора = 1; // в рублях 
    Если ПустоеЗначение(Договор.ВалютаДоговора) = 0 Тогда
    ЦеныВДоговоре = 2; // в валюте  
    ОплатаДоговора = Договор.ОплатаДоговора;
    Валюта = Договор.ВалютаДоговора; 
    Кратность = Валюта.Кратность.Получить(ДатаДок);
    Кратность = ?(Кратность=0, 1, Кратность); 
    Если (ОплатаДоговора = 2)  Тогда
    Вал = Валюта.Наименование;
    Если ПустоеЗначение(Валюта.ИмяФайлаПрописи) = 1 Тогда
    Предупреждение("Для выбранной валюты не указан файл прописи.");
    Иначе
    Пропись(Валюта.ИмяФайлаПрописи);
    КонецЕсли;
    Иначе
    Пропись("");
    КонецЕсли;
    КонецЕсли;
    Ном = 0; 
    ПроверкаНомТекФормы();
    Таб.ВывестиСекцию("Шапка");
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл 
    Ном = Ном + 1;
    МЦ = Товар;
    Код = Товар.Код;
    ЕдиницаИзмерения = Товар.ЕдиницаИзмерения;
    ЕдиницаИзмеренияКод = ЕдиницаИзмерения.Код;
    Если ((ЦеныВДоговоре = 2) и (ОплатаДоговора = 1))  Тогда
    ПечЦена =  Окр(Цена*Курс/Кратность, 2, 1);
    СуммаБезНДС =  Окр(Сумма*Курс/Кратность, 2, 1);
    СуммаНДС =  Окр(НДС*Курс/Кратность, 2, 1);
    ПечВсего =  Окр(Всего*Курс/Кратность, 2, 1);  
    Иначе
    ПечЦена =  Цена;
    СуммаБезНДС =  Сумма;
    СуммаНДС =  НДС;
    ПечВсего =  Всего;
    КонецЕсли;	
    Если ПустоеЗначение(ВариантРасчетаНалогов) = 0 Тогда // выбран вариант
    СтНДС = ВариантРасчетаНалогов.ПолучитьАтрибут("СтавкаНДС");
    Иначе
    СтНДС = глЗначениеПоУмолчанию("ОсновнаяСтавка"+НДС);
    КонецЕсли; 
    ЗаполнениеСтр(СтрП);
    Если (ОплатаДоговора = 2) Тогда
    ОптоваяНадбавка = "0%"; 
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/иначе')">			Иначе	</span> 
    Если Товар.ЦенаИзготовителя=0 Тогда
    ОптоваяНадбавка = "0%";  
    Иначе
    ОптПроц = ОКР((ПечЦена-Товар.ЦенаИзготовителя)/Товар.ЦенаИзготовителя*100,1,1);  
    ОптоваяНадбавка = Строка(ОптПроц)+"%";
    Если ОптПроц > 20 Тогда
    Сигнал();
    Предупреждение ("Оптовая надбавка по:"+Товар+" больше 20 %",0);
    КонецЕсли;
    ПечЦена=Товар.ЦенаИзготовителя;  
    КонецЕсли;
    КонецЕсли;
    Если Сприлож = 1 Тогда
    Т.ВывестиСекцию("Строка");                                         
    Если (ПустаяСтрока(СтрП) = 0)Тогда
    Т.ВывестиСекцию("Всоставе");
    КонецЕсли;
    Иначе
    Таб.ВывестиСекцию("Строка");
    Если (ПустаяСтрока(СтрП) = 0)Тогда
    Таб.ВывестиСекцию("Всоставе");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    ИтогКоличество = Итог("Количество"); 
    Если ((ЦеныВДоговоре = 2) и (ОплатаДоговора = 1))  Тогда
    ИтогСумма =  Окр(Итог("Сумма")*Курс/Кратность, 2, 1);
    ИтогВсего =  Окр(Итог("Всего")*Курс/Кратность, 2, 1);
    ИтогНДС =  Окр(Итог("НДС")*Курс/Кратность, 2, 1);
    Иначе
    ИтогСумма =  Итог("Сумма");
    ИтогВсего =  Итог("Всего");
    ИтогНДС =  Итог("НДС");
    КонецЕсли;
    Если СПрилож=1 Тогда
    Таб.ВывестиСекцию("Спецификация");   
    КонецЕсли;
    
    Таб.ВывестиСекцию("Подвал"); 
    Если ЛистПеч = 0 Тогда
    Таб.НоваяСтраница();   
    КонецЕсли;
    Таб.ВывестиСекцию("Подвал2");
    Если СПрилож=1 Тогда
    Т.ВывестиСекцию("Подвал");  
    Если НомерТекущейФормы <> 2 Тогда
    Т.ВывестиСекцию("ПодвалПриложение");
    КонецЕсли;	
    КонецЕсли;
    Если СПрилож=1 Тогда
    Т.Показать("Печать приложения","");	
    КонецЕсли;
    //	Таб.Опции(0,0,?(Проведен() = 0, 1, 0),0,"ОпцииПечатиМ15","ОкноМ15");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Печать накладной","");
    
    КонецПроцедуры // Печать
    
    
    
    [/quote]
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У вас явно не стандартная процедура (вы бы хоть релиз конфы сказали....)
    Судя по всему количество у вас выводится непосредственно в макете. Замените на переменную и добавть из приведенного примера мое условие (с учетом ваших методанных)
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ваше сообщение удатено из-за нечитабоельности.
    Совет: Если кусок кода большой - копируйте в отдельный файл и прикрепляйте к сообщению. А в данном случе луче вылодить МДшник в файлообменник и сюда ссылку (макета-то вашего я не вижу)
  8. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Отправил файл

    А где находится макет?
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Макет это таблица (шаблон) И вуда вы файл отправили? Где ссылка?
  10. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    что то файл не прикрепляется. Что делать?
  11. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Макет (таблица) - Расходной наклодной. Я правильно понял. В таблице, колонке, просто "Количество"
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Правильно... Количество - это реквизит табличной части документа. Замените ее в макете на переменную (кол). А кол уже присваивайте в цикле..
  13. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    А, куда добавить Ваше условие.
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    перед выводом строки:
    Код:
    //тут
    Если Сприлож = 1 Тогда
    
    
  15. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    А строчку " Кол =?(ТабДок.Количество=0,1ТабДок.Количество);" надо прописывать или нет.
  16. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Выдало ошибку


    Если ТабДок.Товар.ВидНоменклатуры.Выбран()=1 Тогда
    {Документ.РасходнаяНакладная.Форма.Модуль(1039)}: Значение не представляет агрегатный объект (Товар)
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Я же вам приводил пример из ТИПОВОЙ бухгалтерии... Да включите вы голову в конце-то концов! Нельзя просто тупо копировать!
    Вам надо:
    Код:
    Если Товар.ВидНоменклатуры.Выбран()=1 Тогда    
    Если Найти(Строка(Товар.ВидНоменклатуры.ТипНоменклатуры), "Услуга")<>0 Тогда           
    Кол=0;    
    Иначе
    Кол=Количество;
    КонецЕсли;
    КонецЕсли;
    
    
    
    
  18. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Спасибо за терпимость
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Будьте пожалуста внимательнее...
  20. TopicStarter Overlay
    doniel
    Offline

    doniel Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    26
    Выдало в таблице Колличество
    "
    Товар пусто
    Услуга за переработку пусто
    Итого 70
    "
    Должно быть Товар - 30, Услуга -40 и в Итого- 30

    Где я что не ввел?

    В строке наименования товара стоит переменная - МЦ

    Что то не так читает
    "Если Найти(Строка(Товар.ВидНоменклатуры.ТипНоменклатуры), "Услуга")<>0 Тогда"

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