INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Котов Дмитрий | Программист-разработчик | ООО "Саянскгазобетон"

«Автоматизация обработки потока документов, на примере разработки "Терминала путевых листов" для диспетчерской службы»

Пример возможности разработки полностью автоматизированного места для получения, обработки и возврата документов через терминал на платформе 1С:Предприятие 8.3, без участия оператора. В примере демонстрирую возможность реализации "Терминала путевых листов" в диспетчерской службе компании ООО "Саянскгазобетон". Основное направление компании - производство автоклавного газобетона. Диспетчерская служба не имеет возможности круглосуточной работы, в связи с чем сложилась проблема в своевременным возврате путевых листов от водителей. «Терминал путевых листов», продемонстрированный в докладе, позволяет решит данную проблему путем создания интерфейса прямого доступа в информационную систему с помощью нового режима запуска 1С – "Киоск". Водитель самостоятельно получает и возвращает путевой лист в прикладном решении 1С: Управление автотранспортом 2.1.

1. asddsaas 18.04.18 16:00 Сейчас в теме

Конвертация 3.0 Перенос данных, которых нет в формате обмена.

Добрый день, коллеги!

Есть ли какой-нибудь трюк позволяющий перенести те данные табличной части, которых нет в формате? Например для реквизитов шапки можно (даже нужно) использовать объект формата AdditionalInfo. А что с табличными частями?

Я уже пробовал использовать AdditionalInfo. Создавал таблицу значений в обработчике ПриОтправкеДанных, заполнял ее и передавал в структуре через AdditionalInfo. Данные на стороне приемника я, конечно, получаю. В обработчике ПриКонвертацииДанныхXDTO я даже добавляю их в массив со строками, который потом вставляются в дополнительные свойства. Но объект в приемнике все равно заполняется только теми данными, которые есть в формате.

Пробовал организовать поиск объектов на стороне приемника передавая только данные для поиска, но все тщетно...
Может нужно как-то данные передать дальше? И заполнять их в обработчике ПередЗаписьюПолученныхДанных или ПослеЗагрузкиВсехДанных, хотя у них ведь другое назначение... Кажется я в небольшом тупичке)

Как кто выходил из такой ситуации? Поделитесь опытом, пожалуйста.
Найденные решения
3. MaxS 1149 19.04.18 06:01 Сейчас в теме
В ПКС нужно указать реквизиты табличной части конфигурации + флаг "используется алгоритм".

Если хочется передать в ПередЗаписьюПолученныхДанных произвольные данные, то помещаем их в
ПолученныеДанные.ДополнительныеСвойства
Остальные ответы
Сортировка: Древо
2. progr-2008 120 18.04.18 20:59 Сейчас в теме
(1)табличная часть ДополнительныеРеквизиты не поможет?
3. MaxS 1149 19.04.18 06:01 Сейчас в теме
В ПКС нужно указать реквизиты табличной части конфигурации + флаг "используется алгоритм".

Если хочется передать в ПередЗаписьюПолученныхДанных произвольные данные, то помещаем их в
ПолученныеДанные.ДополнительныеСвойства
4. asddsaas 19.04.18 16:54 Сейчас в теме
(3) *рука лицо* Вы правы)) Закопался на столько что забыл про элементарное ПКС) Спасибо!
5. asddsaas 15.05.18 16:33 Сейчас в теме
(3) Появился еще один вопрос. Не буду создавать новую тему, спрошу тут.

Есть ПКО для справочника "Контрагенты". В процедуре ПриОтправкеДанных заполняю AdditionalInfo данными о партнере. Когда переношу элемент справочника "Контрагенты" на стороне приемника есть AdditionalInfo, но если переношу документ в котором есть поле контрагент, тогда в процедуре ПриКонвертацииДанныхXDTO AdditionalInfo отсутствует. Есть только ключевые свойства.

Подскажите, пожалуйста, как передать AdditionalInfo контрагента, если я переношу документ?
6. MaxS 1149 15.05.18 17:12 Сейчас в теме
(5) В ключевых свойствах нельзя передать AdditionalInfo. Только в целиком выгруженном объекте. В документе контрагент выгружается в виде ключевых реквизитов.
Обычно согласовывают справочники, потом обмениваться документами.
asddsaas; +1 Ответить
7. asddsaas 16.05.18 11:56 Сейчас в теме
(6) Спасибо большое!

Есть еще вопрос о ПОД.
Пытаюсь перенести документ РКО с операцией "Выдача в другую кассу". В объектах формата не нашел подходящий, решил воспользоваться объектом Документ.РКОПрочийРасход.
Создал ПКС для объекта формата, все свойства с галочкой "Используется алгоритм конвертации". Создал ПОД. Сначала пользовался стандартной выборкой, потом указал произвольный алгоритм, в процедуре ВыборкаДанных написал запрос. Но отладчик не останавливается в процедуре ВыборкаДанных. Такое ощущение что процедура вообще игнорируется и никакой выборки не происходит.
Подскажите, пожалуйста, как можно организовать произвольную выборку и передать документ?
8. MaxS 1149 16.05.18 18:27 Сейчас в теме
(7) А зачем произвольную выборку использовать? Создаёте свои ПКО и ПОД для отправки.
При получении нужно в ПОД поймать Ваш документ и указать какое ваше новое ПКО для него использовать.
9. asddsaas 17.05.18 15:22 Сейчас в теме
(8)
Создаёте свои ПКО и ПОД для отправки.


У меня есть ПОД для отправки РКО, в нем я определяю нужное ПКО в процедуре ПриОбработке.
В базе-источнике регистрирую изменения для нужного документа с операцией "Выдача в другую кассу". Ставлю точку останова в процедуре ПриОбработке. Отладчик не останавливается. Такое чувство что, ПКС не определяется и документ не отправляется. Тогда как, для других документов РКО (с операциями "Прочий расход" или "Возврат оплаты клиенту"), для которых определенны ПКС, отладчик останавливается.
После завершения синхронизации, в журнале регистрации появляется запись: Объектов обработано: 1.
Значит ли это, что документ был отправлен?
(8)
При получении нужно в ПОД поймать Ваш документ и указать какое ваше новое ПКО для него использовать.

Тут ситуация аналогичная. В ПОД точка останова не отрабатывает. После синхронизации, в журнале регистрации запись: Объектов обработано: 0.
10. MaxS 1149 17.05.18 15:57 Сейчас в теме
(9) В файл можно посмотреть что выгрузилось. Отладку нужно делать с ключом РежимОтладки, иначе обмен в фоновом задании выполняется.
11. asddsaas 17.05.18 16:07 Сейчас в теме
(10) Я настроил автоматическое подключение фоновых заданий. Вроде останавливает)

<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns:msg="http://www.1c.ru/SSL/Exchange/Message" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<msg:Header>
		<msg:Format>http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3</msg:Format>;
		<msg:CreationDate>2018-05-17T12:06:03</msg:CreationDate>
		<msg:Confirmation>
			<msg:ExchangePlan>СинхронизацияДанныхЧерезУниверсальныйФормат</ms­g:ExchangePlan>
			<msg:To>УП</msg:To>
			<msg:From>ЦБ</msg:From>
			<msg:MessageNo>256</msg:MessageNo>
			<msg:ReceivedNo>240</msg:ReceivedNo>
		</msg:Confirmation>
		<msg:AvailableVersion>1.3</msg:AvailableVersion>
		<msg:AvailableVersion>1.2</msg:AvailableVersion>
		<msg:AvailableVersion>1.1</msg:AvailableVersion>
		<msg:AvailableVersion>1.0</msg:AvailableVersion>
	</msg:Header>
	<Body xmlns="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3">
		<УдалениеОбъекта>
			<СсылкаНаОбъект>
				<СсылкаНаОбъект>
					<РКОРасчетыСКонтрагентамиСсылка>bad14526-26b1-11e8-80c1-0002c9522660</РКОРасчетыСКонтрагентамиСсылка>
				</СсылкаНаОбъект>
			</СсылкаНаОбъект>
		</УдалениеОбъекта>
		<УдалениеОбъекта>
			<СсылкаНаОбъект>
				<СсылкаНаОбъект>
					<РКОПрочаяВыдачаСсылка>bad14526-26b1-11e8-80c1-0002c9522660</РКОПрочаяВыдачаСсылка>
				</СсылкаНаОбъект>
			</СсылкаНаОбъект>
		</УдалениеОбъекта>
		<УдалениеОбъекта>
			<СсылкаНаОбъект>
				<СсылкаНаОбъект>
					<РКОПрочийРасходСсылка>bad14526-26b1-11e8-80c1-0002c9522660</РКОПрочийРасходСсылка>
				</СсылкаНаОбъект>
			</СсылкаНаОбъект>
		</УдалениеОбъекта>
	</Body>
</Message>
Показать


Я так понимаю, это пустая выгрузка?
12. MaxS 1149 17.05.18 16:25 Сейчас в теме
(11) в ПОД ИспользованиеПКО.* равно ложь , поэтому выгрузилось УдалениеОбъекта
13. asddsaas 17.05.18 16:42 Сейчас в теме
(12) Тогда я решительно ничего не понимаю... Код обработчика ПОД_ДокументРасходныйКассовыйОрдер_Отправка_ПриОбработке

ИспользованиеПКО.ДокументРКОРасчетыСКонтрагентами_Отправка = Ложь;
ИспользованиеПКО.ДокументРКОПрочаяВыдача_Отправка = Ложь;
ИспользованиеПКО.ДокументРКОПередачаВДругуюКассу_Отправка = Ложь;


Если ДанныеИБ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту Тогда 
	ИспользованиеПКО.ДокументРКОРасчетыСКонтрагентами_Отправка = Истина;
ИначеЕсли ДанныеИБ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств Тогда 
	ИспользованиеПКО.ДокументРКОПрочаяВыдача_Отправка = Истина;
ИначеЕсли ДанныеИБ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствВДругуюКассу Тогда 
	ИспользованиеПКО.ДокументРКОПередачаВДругуюКассу_Отправка = Истина;
КонецЕсли;
Показать

Я проверял запросом в консоле, ХозОперация точно та. Пробовал отключать все ПКО кроме ДокументРКОПередачаВДругуюКассу_Отправка. Выгружается тоже самое.
14. MaxS 1149 17.05.18 16:53 Сейчас в теме
(13) Если отладка в этом модуле останавливается, то должно выгружаться. Непонятно что ещё может быть, т.к. здесь уже пройдены все другие возможные препятствия.
15. asddsaas 17.05.18 16:59 Сейчас в теме
(14)
Если отладка в этом модуле останавливается

В том то и дело что не останавливается
16. asddsaas 18.05.18 10:23 Сейчас в теме
(14) Разобрался. Все дело было в правилах регистрации.
Выгрузил правила, отредактировал в КД 2, загрузил обратно и все заработало!
Спасибо за помощь!
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Удаленный бизнес-аналитик 1С
Санкт-Петербург
Временный (на проект)