|
Создать и заполнить документ данными из массива |
☑ |
0
wrxsti
30.05.19
✎
12:24
|
В массиве лежит строка из БД MSSQL. Данными из нее я пытаюсь заполнить новый документ.
Для Каждого ЭлементМассива из Массив Цикл
Если ЭлементМассива.Id1C = "0" Тогда
ДокументОбъект = Документы.Док1.СоздатьДокумент();
ДокументОбъект.TEST = ЭлементМассива.TestName;
ДокументОбъект.Дата = ТекущаяДата();
ДокументОбъект.Записать();
КонецЕсли;
КонецЦикла;
Проблема в том что, значение из "TestName" не попадает в реквизит "TEST". Тип у реквизита "TEST" содержит ссылку на справочник, и я так понимаю проблема именно в этом.
Скажите что я делаю не так и как это можно сделать правильно?
|
|
1
Галахад
гуру
30.05.19
✎
12:41
|
Тест = ЭлементМассива.TestName;
ТестСсылка = Справочники.Тест.НайтиПоНаименованию(Тест);
Если НЕ ТестСсылка = Справочники.Тест.ПустаяСсылка Тогда
ТестСсылка = Справочники.Тест.СоздатьЭлемент();
ТестСсылка.Наименование = Тест;
ТестСсылка.Записать()
ДокументОбъект.TEST = ТестСсылка;
|
|
2
wrxsti
30.05.19
✎
13:22
|
Спасибо большое, получилось! Не подскажите еще один вопрос?
В этом же коде, хочу заполнить табличную часть документа. Хочу чтобы данные записывались в одну строку, но так как делаю я, создается в табличной части 2 строки.
ДокументОбъект.Курсы.Добавить().Английский = ЭлементМассива.EngName;
ДокументОбъект.Курсы.Добавить().Испанский = ЭлементМассива.SpainName;
|
|
3
Zmich
30.05.19
✎
13:28
|
(2).
Стр = ДокументОбъект.Курсы.Добавить();
Стр.Английский = ЭлементМассива.EngName;
Стр.Испанский = ЭлементМассива.SpainName;
|
|
4
wrxsti
30.05.19
✎
14:23
|
Спасибо большое!
|
|
5
wrxsti
30.05.19
✎
17:37
|
Последний вопрос, хочу помимо обычных данных, вставить дату.
Делаю так:
Стр = ДокументОбъект.Курсы.Добавить();
Стр.Дата = ЭлементМассива.DateAdd;
Но Стр.Дата вместо нормальных дата и время, выдает "01.01.0001 0:00:00" - пустую дату. Почему и как это можно исправить?
|
|
6
vicof
30.05.19
✎
17:40
|
(5) У тебя дата строкового типа, видимо, в ЭлементМассива
|
|
7
wrxsti
30.05.19
✎
17:58
|
DateAdd в базе, откуда я ее забираю, имеет тип datetime
|
|
8
wrxsti
30.05.19
✎
20:39
|
Правда данные из MSSQL я засовываю в JSON, после чего присваиваю к массиву. Читаю, и есть подозрение что JSON дату плохо воспринимает, так ли это?
|
|
9
Мимохожий Однако
30.05.19
✎
21:19
|
(8) ОФФ: "Три желания закончились" )
Научись пользоваться отладчиком, через который можно увидеть, передаваемые значения и тип значения. Это сэкономит массу своего и чужого времени.
|
|
10
wrxsti
30.05.19
✎
21:27
|
(9) Мда, порой все лежит на поверхности, в отладчике дата лежащая в массиве, строкового типа.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший