7.7 Как правильно обратиться...?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем andryscha92, 29 ноя 2013.

  1. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    В отчете есть две процедуры Ведомость и ГарантОтчет. Каждая из которых срабатывает при нажатии своей соответствующей кнопки на форме и выводит результат в виде таблицы. Так вот, как обратиться из второй процедуры (ГарантОтчет) к определенному значению первой процедуры.Дело в том что во второй таблице ячейка должна заполняться данным значением из первой таблицы.
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ОбработкаЯчейкиТаблицы. Двойной клик по ячейке. Через параметр Значение получите искомое для заполнения второго отчета
  3. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    там отчет один, таблицы для него две,и вот значение для одной таблицы должно браться из второй.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    2 таблицы в одной форме? Тогда через ТаблицуЗначений
  5. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Во второй процедуре(ГарантийныйОтчет) параметр НомерР должен заполняться исходя из значения первой процедуры(Ведомость) параметра НомерРек. что тут нужно добавить,напрямую переданный параметр вызывает ошибку...

    Код:
    Процедура Ведомость()
    Док = СоздатьОбъект("Документ.Диагностика");
    
    Ном = 0;
    НомерРек = НачНомер; //НомерРек - вот этот параметр нужно передать во вторую процедуру..
    Табл = СоздатьОбъект("Таблица");
    Табл.ИсходнаяТаблица("Ведомость");
    Табл.ПараметрыСтраницы(,,,,,,,,,1);
    Таб.ВыбратьСтроки();
    Пока Таб.ПолучитьСтроку() = 1 Цикл
    Док.НайтиДокумент(Таб.Док);
    ДатаВыдачи = СокрЛП(Строка(Док.ДатаВыдачи));
    НомерРек  = НомерРек + 1;
    Табл.ВывестиСекцию("Заголовок");
    Инструмент = СокрЛП(Строка(Док.Инструмент));
    Серийник = СокрЛП(Строка(Док.СерийныйНомер));
    Артикул = СокрЛП(Док.Инструмент.Код);
    Номер = СокрЛП(Док.НомерДок);	  
    ДатаПродажи = СокрЛП(Строка(Док.ДатаПродажи));
    ДатаПриема = СокрЛП(Строка(Док.ДатаДок));
    Неисправность = СокрЛП(Док.Неисправность);
    Комментарий = Строка(Док.Комментарий);
    Табл.ВывестиСекцию("Шапка");
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
    Если Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал Тогда
    Номенклатура = СокрЛП(Док.Товар);
    КодИзделия  = СокрЛП(Док.Товар.Код);
    Количество = Док.Количество;
    Табл.ВывестиСекцию("Строка");
    КонецЕсли;																					  
    КонецЦикла;
    Мастер = Строка(Док.Мастер);
    Табл.ВывестиСекцию("Подвал");
    Табл.НоваяСтраница();
    КонецЦикла;
    
    Табл.Показать("Печать гарантийных талонов", "");
    КонецПроцедуры
    
    Процедура ГарантийныйОтчет()
    
    Док = СоздатьОбъект("Документ.Диагностика");
    ТабГ = СоздатьОбъект("Таблица");	
    ТабГ.ПараметрыСтраницы(2,,,,,,,,,1);
    ТабГ.ИсходнаяТаблица("ГарантОтчет");
    ТабГ.ВывестиСекцию("Шапка");
    Таб.ВыбратьСтроки();
    Пока Таб.ПолучитьСтроку() = 1 Цикл
    Док.НайтиДокумент(Таб.Док);
    Бренд = СокрЛП(Док.Инструмент.Бренд);
    Датавыдачи = СокрЛП(Строка(Док.ДатаВыдачи));
    НомерР = ???;//тут должно заполняться исходя из процедуры Ведомость а именно параметр НомерРек.
    Модель   = СокрЛП(Док.Инструмент.Код);
    СерНомер = СокрЛП(Док.СерийныйНомер);
    ДатаПродажи  = СокрЛП(Строка(Док.ДатаПродажи));
    ДатаВыпуска  = СокрЛП(Строка(Док.ДатаВыпуска));
    ДатаДиагностики = СокрЛП(Строка(Док.ДатаДок));
    ВидРемонта = СокрЛП(Док.Комментарий);  
    ТабГ.ВывестиСекцию("Детали|Инст");
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
    
    Если (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) и (Док.НомерСтроки = 1) Тогда
    АртикулГ = Док.Товар.Код;
    Наименование = СокрЛП(Док.Товар);
    Цена = ВернутьСуммуГарантии(Док);
    ТабГ.ПрисоединитьСекцию("Детали|Деталь");
    ТабГ.ПрисоединитьСекцию("Детали|Итог");
    ИначеЕсли (Док.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал) Тогда
    Бренд = СокрЛП(Док.Инструмент.Бренд);
    АртикулГ = Док.Товар.Код;
    Наименование = СокрЛП(Док.Товар);
    Цена = ВернутьСуммуГарантии(Док);  
    ТабГ.ВывестиСекцию("Ит|Инст");
    ТабГ.ПрисоединитьСекцию("Детали|Деталь");
    ТабГ.ПрисоединитьСекцию("Ит|Итог");
    КонецЕсли;	
    
    КонецЦикла;  
    ТабГ.ВывестиСекцию("Строка");	  
    КонецЦикла;		
    ТекДата = ТекущаяДата();
    ТабГ.ВывестиСекцию("Подвал");
    
    ТабГ.Показать("Гарантийный отчет", "");
    КонецПроцедуры
    
    
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А откуда вообще этот НачНомер появляется? Это реквизит формы?
  7. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Это порядковый номер
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Но ведь вы его откуда-то получаете чтобы присвоить
    2) Документ вы также получаете из какой-то таблицы. А нельзя ли к этому привязаться? ведь можно же получить номер строки в таблице.
    В вашем случае
    Код:
    НомерР=Таб.НомерСтроки+НачНомер;
    
  9. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Спасибо!!!
  10. Бухгалтерский угодник
    Offline

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

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

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