Задать вопрос
@rusi4z

Конвертация данных, заполнение формы программно?

всех приветствую в этот понедельник неприятный, господа, требуется помощь(хелп), необходимо, что бы при открытии формы, все поля были заполнены(это я сделал, но видимо криво), но кажется и этого мало программе, так как при заполнении вручную одного поля(к примеру), выводит еще несколько полей(то есть срабатывает условие, если значение заполнено, то...), вот как выглядит сейчас, все поля заполнены программно в КД 2.1.:
683d1a0187576446122716.png

Но необходимо, что бы было так (в этой же форме, я вручную перезаполнил 1 поле, к слову, заполнение любого одного поля показывает еще несколько полей):
683d1a4accb91592837451.png

Код обработчика Приход.Касс.Орд(После загрузки):
Объект.ВидОперации = Перечисления.ВидыОперацийПКО.ОплатаПокупателя;
Объект.Контрагент = Справочники.Контрагенты.РозничныйПокупатель;
Объект.СчетКасса = ПланыСчетов.Хозрасчетный.ЕПС_60331;
Объект.ВалютаДокумента = Константы.ВалютаРегламентированногоУчета.Получить();


а вот правила:
683d1a9ba3ea3800063140.png

Тот самый ДокументОснование:
683d1ac5e3100608116748.png

Если нужен код правила ОтчетОРозничныхПродажах(после выгрузки):
Запрос = Новый Запрос();
Запрос.Текст = ("ВЫБРАТЬ
|	ОтчетОРозничныхПродажах.Ссылка КАК Ссылка,
|	ОтчетОРозничныхПродажах.СуммаДокумента КАК СуммаДокумента,
|	ОтчетОРозничныхПродажах.Организация КАК Организация,
|	ОтчетОРозничныхПродажах.Дата КАК Дата,
|	ОтчетОРозничныхПродажах.Номер КАК Номер,
|	ОтчетОРозничныхПродажах.Ответственный КАК Ответственный
|ПОМЕСТИТЬ ВТШапкаОПК
|ИЗ
|	Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
|ГДЕ
|	ОтчетОРозничныхПродажах.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ВТШапкаОПК.Организация КАК Организация,
|	ВТШапкаОПК.Дата КАК Дата,
|	ВТШапкаОПК.Ответственный КАК Ответственный,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка КАК Ссылка,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.ВидОплаты КАК ВидОплаты,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма КАК Сумма,
|	ВТШапкаОПК.Номер КАК Номер
|ПОМЕСТИТЬ ВТОплатыПоКарте
|ИЗ
|	Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами
|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТШапкаОПК КАК ВТШапкаОПК
|		ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = ВТШапкаОПК.Ссылка
|ГДЕ
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|	ВТШапкаОПК.Дата,
|	ВТШапкаОПК.Организация,
|	ВТШапкаОПК.Ответственный,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.ВидОплаты,
|	ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма,
|	ВТШапкаОПК.Номер
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ВТШапкаОПК.Ссылка КАК Ссылка,
|	ВТШапкаОПК.Организация КАК Организация,
|	ВТШапкаОПК.Дата КАК Дата,
|	ВТШапкаОПК.Ответственный КАК Ответственный,
|	ВТШапкаОПК.СуммаДокумента КАК Сумма,
|	ВТШапкаОПК.Номер КАК Номер
|ИЗ
|	ВТШапкаОПК КАК ВТШапкаОПК
|ГДЕ
|	ВТШапкаОПК.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|	ВТШапкаОПК.Дата,
|	ВТШапкаОПК.Номер,
|	ВТШапкаОПК.Ссылка,
|	ВТШапкаОПК.Организация,
|	ВТШапкаОПК.Ответственный,
|	ВТШапкаОПК.СуммаДокумента
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|	ВТОплатыПоКарте.Ссылка,
|	ВТОплатыПоКарте.Организация,
|	ВТОплатыПоКарте.Дата,
|	ВТОплатыПоКарте.Ответственный,
|	-ВТОплатыПоКарте.Сумма,
|	ВТОплатыПоКарте.Номер
|ИЗ
|	ВТОплатыПоКарте КАК ВТОплатыПоКарте
|ГДЕ
|	ВТОплатыПоКарте.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|	ВТОплатыПоКарте.Дата,
|	ВТОплатыПоКарте.Ссылка.Номер,
|	ВТОплатыПоКарте.Организация,
|	ВТОплатыПоКарте.Ответственный,
|	-ВТОплатыПоКарте.Сумма,
|	ВТОплатыПоКарте.Ссылка,
|	ВТОплатыПоКарте.Номер");     


Запрос.УстановитьПараметр("Ссылка", Источник); 
МассивРезультатов = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
ВыборкаШапка = МассивРезультатов[0].Выбрать();
ВыборкаОПК = МассивРезультатов[1].Выбрать();
ВыборкаПКО = МассивРезультатов[2].Выбрать();
Хранилище = 0;  

Пока ВыборкаОПК.Следующий() Цикл  
	ВыгрузитьПоПравилу(ВыборкаОПК, , , , "ОплатаПлатежнойКартой");
КонецЦикла; 

Пока ВыборкаПКО.Следующий() Цикл
	Если НЕ ВыборкаПКО.Сумма = NULL Тогда
		СтруктураПКО = Новый Структура; 
		СтруктураПКО.Вставить("Дата", ВыборкаПКО.Ссылка.Дата);
		СтруктураПКО.Вставить("Номер", ВыборкаПКО.Ссылка.Номер);
		СтруктураПКО.Вставить("Сумма", ВыборкаПКО.Сумма);
		Хранилище = Хранилище + ВыборкаПКО.Сумма;
		СтруктураПКО.Вставить("СуммаДокумента", Хранилище);  
		СтруктураПКО.Вставить("Ответственный", ВыборкаПКО.Ответственный);
		СтруктураПКО.Вставить("Организация", ВыборкаПКО.Организация);   
		СтруктураПКО.Вставить("Комментарий", ВыборкаПКО.Ссылка.Комментарий);
		СтруктураПКО.Вставить("ДокументОснование", ВыборкаПКО.Ссылка);
		ВыгрузитьПоПравилу(СтруктураПКО, , , , "ПриходныйКассовыйОрдер");
	Иначе
	КонецЕсли;
КонецЦикла;
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
вот как выглядит сейчас, все поля заполнены программно в КД 2.1.:

1. Очевидно, что ваши правила конвертации не заполняют документ полностью.

2. У вас есть неполное состояние документа сразу после КД и вы его можете вручную дозаполнить - сравните эти два состояния: какие-то из полей будут пустые, а где-то вообще неправильные значения. На базе этого сравнения вы сможете исправить свой код и выгружать документы именно в том виде как вам нужно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Romandredan9
@Romandredan9
Тимлид, Аналитик, немного Разработчик) Всё про 1С)
Приветствую.
Первая мысль - есть некий код в обработчиках "ПриИзменении" для ряда реквизитов. Самый массовый и влияющий на внешний вид, полагаю, - это реквизит "Вид операции".

Предлагаю решать задачу так:
1. Найдите процедуру, которая вызывается при изменении "Вида операции" на форме;
2. Определите код, который влияет на внешний вид формы;
3. Скопируйте вызов этого кода в обработчик после загрузки в КД 2.

Более точно не скажу - нет информации ни о конфигурации, ни о версии))
Ответ написан
@kalapanga
Я бы в первую очередь всё связанное с договором покупателя смотрел. Для начала он у этого покупателя должен быть. А дальше, как вариант, при ручном создании документа он подставляется автоматически (если он договор по умолчанию), а при программном его надо явно самому задавать. Ну и остальные поля тянущиеся из договора тоже не факт, что сами встанут.
Ответ написан
Комментировать
fosihas
@fosihas
Автоматизации учета на 1С.
Дополню
1.Загрузили документ/справочник КД2.
2.Далее ручками создали "нужного формата" этот же документ/справочник.
3. Сравниваете реквизиты данных объектов, использую любое Редактор объектов.

Банальная рутина. И детская игра "найди 10 отличий"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы