elKam
@elKam

Как в 1С автоматически вставлялись прежняя дата и изменённая дата?

Подскажи,пожалуйста,где ошибка:
ИзмДатаОтгрузки = ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ДатаОтгрузки;

Если ПрежняяДО <> ИзмДатаОтгрузки ТОГДА
ИзмДатаОтгрузки = ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ДатаОтгрузки;

Запись = РегистрСведений.Проблемы.СоздатьНаборЗаписи();
Запись.Отбор.ЗП.Установить(ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка);
Запись.Отбор.Период.Установить(ПрежняяДО);

Таб = Запись.Добавить();
Таб.ПрежняяДО = ПрежняяДО;
Таб.ИзмДатаОтгрузки = ИзмДатаОтгрузки;
Таб.Период = ПрежняяДО;
Таб.ЗП = ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка;

Запись.ПолучитьФорму("ФормаСписка").Открыть();
КонецЕсли;

Суть вопроса - нужно,чтобы при открытии формы автоматом вставлялись значения изменённая дата и прежняя дата. Только открывается форма без значений
У меня 1С УПП редакция 1.3.
ПрежняяДО,ИзмДатаОтгрузки - переменные.
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Подскажи,пожалуйста,где ошибка

Ошибок нет.

Запись.ПолучитьФорму("ФормаСписка").Открыть();

Суть вопроса - нужно,чтобы при открытии формы автоматом вставлялись значения изменённая дата и прежняя дата. Только открывается форма без значений

Вы получаете форму списка для регистра сведений и, не заполнив ее никакими значениями, тут же открываете. В наборе записей, который является основным реквизитом формы, не факт что скопируется установленный отбор из вашего набора, но точно по волшебству не перенесутся записи.

Вам нужно сперва получить форму, далее заполнить ее данными и лишь затем открывать. Код ниже просто как ориентир. Предположим что на вашей форме основной реквизит назван НаборПроблем:

ФормаПроблем = РегистрСведений.Проблемы.ПолучитьФорму("ФормаСписка");

НаборЗаписей = ФормаПроблем.НаборПроблем;
НаборЗаписей.Отбор.ЗП.Установить(ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка);
НаборЗаписей.Отбор.Период.Установить(ПрежняяДО);

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.ПрежняяДО = ПрежняяДО;
НоваяЗапись.ИзмДатаОтгрузки = ИзмДатаОтгрузки;
НоваяЗапись.Период = ПрежняяДО;
НоваяЗапись.ЗП = ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка;

ФормаПроблем.Открыть();


Плюс замечание по коду.
1) ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка - это эквивалент более короткой записи ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП, но только для получения Ссылки из ЗП (типа Ссылка) вы подгружаете в память из базы данных полностью весь документ заказа (лишний запрос к БД, потеря времени и оперативки).
2) Если ЗаказыПО - это не ТЧ или ТЗ, а динамический список на базе документа ЗаказыПО, или элемент типа ДокументСписок.ЗаказыПО, то можно написать еще проще: ЭлементыФормы.ЗаказыПО.ТекущаяСтрока.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы