Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как втянуть и подставить данные с другого документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Есть 1 справочник и 1 документа. С справочника надо вытягивать инфу и подставлять в форму документа. вот такое написал но это не сработало. помогите.
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    
    Если Элементы.План.ТекущиеДанные.Смена = Справочники.артЦеновыеСмены.НайтиПоНаименованию тогда
    Элементы.План.ТекущиеДанные.ДатаНачала = Справочники.артЦеновыеСмены.ДатаНачала И
    Элементы.План.ТекущиеДанные.ДатаОкончания = Справочники.артЦеновыеСмены.ДатаОкончания
    
    КонецЕсли
        
КонецПроцедуры
podcast
burza @ Сегодня, 14:59 необходимо зарегистрироваться для просмотра ссылки ,
Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("НаименованиеСправочника");

  Если Элементы.План.ТекущиеДанные.Смена = Справочник Тогда
  
КонецЕсли

НайтиПоНаименованию доступно только на Сервере, вроде.
burza
podcast @ Сегодня, 15:04 необходимо зарегистрироваться для просмотра ссылки ,
Сменил на сервере ничего не происходит

Просто ничего не происходит на форме

&НаСервере
Процедура ПланСменаПриИзменении(Элемент)
         //Элементы.План.ТекущиеДанные.ДатаНачала = Элементы.План.ТекущиеДанные.Смена.ДатаНачала;
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
    
     Если Элементы.План.ТекущиеДанные.Смена = Справочник Тогда
    Элементы.План.ТекущиеДанные.ДатаНачала = Справочники.артЦеновыеСмены.ДатаНачала И
    Элементы.План.ТекущиеДанные.ДатаОкончания = Справочники.артЦеновыеСмены.ДатаОкончания
    
    КонецЕсли
        
КонецПроцедуры
podcast
burza @ Сегодня, 15:26 необходимо зарегистрироваться для просмотра ссылки ,
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    ПланСменаПриИзменении();
КонецПроцедуры

&НаСервере
Процедура ПланСменаПриИзменении()
    СправочникАртЦеновыеСмены = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
    Если Объект.Смена   = СправочникАртЦеновыеСмены Тогда
        ЗначениеВРеквизитФормы(СправочникАртЦеновыеСмены.ДатаНачала, "ДатаНачала ");
    КонецЕсли;    
КонецПроцедуры

На работоспособность не проверял но принцип такой.
burza
podcast @ Сегодня, 15:39 необходимо зарегистрироваться для просмотра ссылки ,
сделал так
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    ПланСмена();
КонецПроцедуры


&НаСервере
Процедура ПланСмена()
         //Элементы.План.ТекущиеДанные.ДатаНачала = Элементы.План.ТекущиеДанные.Смена.ДатаНачала;
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
    
     Если Элементы.План.ТекущиеДанные.Смена  = Справочник Тогда
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаНачала, "ДатаНачала ");
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаОкончания, "ДатаОкончания ");
    КонецЕсли
        
КонецПроцедуры



ошибка

{Документ.ПерспективнаяЗаявка.Форма.ФормаДокумента.Форма(57)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные)
Если Элементы.План.ТекущиеДанные.Смена = Справочник Тогда
по причине:
Текущие данные таблицы недоступны на сервере
podcast
burza @ Сегодня, 15:49 необходимо зарегистрироваться для просмотра ссылки ,
СтрокаТаблицы = Объект.Товары.НайтиПоИдентификатору(Элементы.Товары.ТекущаяСтрока);
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    ПланСмена();
КонецПроцедуры


&НаСервере
Процедура ПланСмена()
         //Элементы.План.ТекущиеДанные.ДатаНачала = Элементы.План.ТекущиеДанные.Смена.ДатаНачала;
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
     СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущиеДанные);
    
    Если СтрокаТаблицы.Смена  = Справочник Тогда
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаНачала, "ДатаНачала ");
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаОкончания, "ДатаОкончания ");
    КонецЕсли
        
КонецПроцедуры
Vidocq05
burza @ Сегодня, 15:49 необходимо зарегистрироваться для просмотра ссылки ,
попробуйте так

&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    Семена = Элементы.План.ТекущиеДанные.Смена;
    ПланСмена(Семена);
КонецПроцедуры


&НаСервере
Процедура ПланСмена(Семена)
        
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
    
     Если Семена  = Справочник Тогда
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаНачала, "ДатаНачала ");
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаОкончания, "ДатаОкончания ");
    КонецЕсли
        
КонецПроцедуры


Но не проверял ))

Цитата(Vidocq05 @ 03.03.17, 16:10) необходимо зарегистрироваться для просмотра ссылки
Семена

Переменную неправильно написал biggrin.gif
burza
podcast @ Сегодня, 16:01 необходимо зарегистрироваться для просмотра ссылки ,

Таже ошибка





Vidocq05 @ Сегодня, 16:10 необходимо зарегистрироваться для просмотра ссылки ,
Ничего не происходит, тоже не работает)

Vidocq05 @ Сегодня, 16:19 необходимо зарегистрироваться для просмотра ссылки ,
))))
podcast
burza @ Сегодня, 16:25 необходимо зарегистрироваться для просмотра ссылки ,
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    ПланСмена();
КонецПроцедуры


&НаСервере
Процедура ПланСмена()
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
     СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущийЭлемент);
    
    Если СтрокаТаблицы.Смена  = Справочник Тогда
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаНачала, "ДатаНачала ");
     ЗначениеВРеквизитФормы(Справочники.артЦеновыеСмены.ДатаОкончания, "ДатаОкончания ");
    КонецЕсли
        
КонецПроцедуры

Поставьте точку останова и посмотрите чему равна СтрокаТаблицы.
burza
podcast @ Сегодня, 16:32 необходимо зарегистрироваться для просмотра ссылки ,

{Документ.ПерспективнаяЗаявка.Форма.ФормаДокумента.Форма(54)}: Ошибка при вызове метода контекста (НайтиПоИдентификатору)
СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущийЭлемент);
по причине:
Несоответствие типов (параметр номер '1')
podcast
burza @ Сегодня, 16:36 необходимо зарегистрироваться для просмотра ссылки ,
СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущаяСтрока);
burza
Ошибку не выбивает но и ничего не подставляет
podcast @ Сегодня, 16:42 необходимо зарегистрироваться для просмотра ссылки ,

logist
&НаКлиенте
Процедура ПланСменаПриИзменении(Элемент)
    ПланСмена();
КонецПроцедуры


&НаСервере
Процедура ПланСмена()
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
     СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущаяСтрока);
    
    Если СтрокаТаблицы.Смена  = Справочник Тогда
     СтрокаТаблицы.ДатаНачала = Справочники.артЦеновыеСмены.ДатаНачала;
     СтрокаТаблицы.ДатаОкончания = Справочники.артЦеновыеСмены.ДатаОкончания;
    КонецЕсли
        
КонецПроцедуры


p.s. вы бы хоть форму документа показали, а то непонятно что у вас там в объекте, а что на форме. в гадалки играем тут...
burza
logist @ Сегодня, 17:40 необходимо зарегистрироваться для просмотра ссылки ,
logist
ну тогда то что я выше написал должно работать.
burza
logist @ Сегодня, 20:47 необходимо зарегистрироваться для просмотра ссылки ,
Вроде да но не работает. Смена выбираеться и все, даты не подтягивает, поля пустые(
logist
Цитата(burza @ 03.03.17, 22:40) необходимо зарегистрироваться для просмотра ссылки
и все, даты не подтягивает, поля пустые(

СтрокаТаблицы нужная? Покажите отладчик с развернутой СтрокаТаблицы, покажите отладчик с развернутым Справочник
burza
logist @ Сегодня, 9:40 необходимо зарегистрироваться для просмотра ссылки ,
logist
Вы знаете что такое отладчик? Как посмотреть значения в режиме отладки? Почитайте, это надо знать.
candrey
Ставишь точку оставки и смотришь какая есть инфа в Справочник и СтрокаТаблицы.
И уже потом анализируешь результат

СлушайТЕ что говорят вам форумчане)))
podcast
burza @ 04.03.17, 9:59 необходимо зарегистрироваться для просмотра ссылки ,
У вас ДатаНачала и ДатаЗавершения реквизиты не табличной части, а справочника.
burza
logist
burza, ну, учитесь же пользоваться, что ж каждый раз тут подсказываем что делать.
В отладчике покажите только "Справочник", станьте на эту переменную и покажите в этом окне что она содержит, но только на следующем шаге, т.е. когда отладчик покажет стрелку на строке с СтрокаТаблицы. А потом тоже самое но со строкой таблицы, и разверните оба результата.
burza

logist
Цитата(burza @ 06.03.17, 14:20) необходимо зарегистрироваться для просмотра ссылки
ТАк)

Видимо не так, покажите скрин так, что бы было видно где остановился отладчик (на поле слева желтая стрелка вправо). Стрелка должна быть в строке "Если СтрокаТаблицыюСмена", в этих скринах она вряд ли там.

upd: как это вы быстро успели перевыложить скрин))
1) у вас нет элемента справочника с наименованием "артЦеновыеСмены"
соответственно 2) пусто.

p.s. мне почему-то кажется, что вы не совсем понимаете логику работы справочника, раз создали в конфигурации справочник, а в базе ищите его элемент по его названию.

+ еще смотрю, и никто на это не обратил внимание, тупо покопировали код, даже не вникая в его логику.
В вашем случае проще было сразу просить кого-то сделать за вас, чем заниматься этим, чем мы тут занимаемся, вы же не хотите вникать во что либо ((

&НаСервере
Процедура ПланСмена()
     Справочник = Справочники.артЦеновыеСмены.НайтиПоНаименованию("артЦеновыеСмены");
     СтрокаТаблицы = Объект.План.НайтиПоИдентификатору(Элементы.План.ТекущаяСтрока);
    
    Если СтрокаТаблицы.Смена  = Справочник Тогда
     СтрокаТаблицы.ДатаНачала = Справочник.ДатаНачала;
     СтрокаТаблицы.ДатаОкончания = Справочник.ДатаЗавершения;
    КонецЕсли
        
КонецПроцедуры
burza
logist @ Сегодня, 13:37 необходимо зарегистрироваться для просмотра ссылки ,

Вы правы мне нужна помощь (сделать за меня) чтобы осуществить эту идею.
logist
Кидайте в личку ссылку на выгрузку базы (.DT), если там информация слишком секретна, или файл больше 500Мб, тогда только конфигурацию (.CF)
burza
logist @ Сегодня, 13:56 необходимо зарегистрироваться для просмотра ссылки ,

Кинул
burza
Есть еще идеи)

logist @ Сегодня, 13:56 необходимо зарегистрироваться для просмотра ссылки ,
Этот добрый человек помог. Можно закрывать. Еще раз вам большое спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.