Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не получается записать значение в табличную часть документа          
andrew76 Подменю пользователя
сообщение 21.10.15, 15:23
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Добрый вечер !

Имеются 2 конфигурации - на платформе 1С 8.2 и 1С 7.7.
Задачка состоит в следующем : нужно из 1с 7 заполнить данными определенный документ-ВыслугаЛет,который
создан в версии 1С 8.2.С реквизитами шапки документа всё работает отлично,а вот в табличную часть
записать не получается - вылетает следующая ошибка "Неверное число параметров".
Ошибка в строке с кодом :
ДокОбъект.Список(Сч).Лет=10;


Коннектор=СоздатьОбъект("V82.COMConnector");

v8 =Коннектор.Connect("File=""C:\11n""; Usr =""Админ"";");

Эл=v8.Документы.ВыслугаЛет.Выбрать(Дата('01.10.15') , Дата('31.10.15'));


Пока Эл.Следующий()<>0 Цикл
     ДокОбъект = Эл.ПолучитьОбъект();
     СтаршийИндекс = Эл.Список.Количество() - 1;
    
     Для Сч = 0 по СтаршийИндекс Цикл
         СтрокаДок= Эл.Список.Получить(Сч);
         таб      = СтрокаДок.ТабНомер;
         Лет_     = СтрокаДок.Лет;
        
         Если СокрЛП(таб)="5403" тогда
               ДокОбъект.Список(Сч).Лет=10;
         КонецЕсли;    
     КонецЦикла;          

КонецЦикла;




daveal Подменю пользователя
сообщение 21.10.15, 15:39
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 70
Из: Киев
Спасибо сказали: 25 раз
Рейтинг: 0

Список - это ТЧ документа? Тогда "ДокОбъект.Список[Сч].Лет = 10;"

andrew76 Подменю пользователя
сообщение 21.10.15, 18:07
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Да ,Список -это табличная часть.Но такой вариант я пробовал-при синтаксическом контроле-вылетает ошибка.
1с7 не "понимает" квадратных скобок.

daveal Подменю пользователя
сообщение 22.10.15, 7:21
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 70
Из: Киев
Спасибо сказали: 25 раз
Рейтинг: 0

А если изменить получение строки на "СтрокаДок= ДокОбъект.Список.Получить(Сч);"? И потом "СтрокаДок.Лет = 10;" не сработает?

andrew76 Подменю пользователя
сообщение 22.10.15, 10:33
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Нет , такой вариант тоже не срабатывает ! Все дело в квадратных скобках,которые 1с 7.7 не воспринимает.

daveal Подменю пользователя
сообщение 22.10.15, 11:27
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 70
Из: Киев
Спасибо сказали: 25 раз
Рейтинг: 0

Так в последнем варианте и нет квадратных скобок:
Коннектор=СоздатьОбъект("V82.COMConnector");

v8 =Коннектор.Connect("File=""C:\11n""; Usr =""Админ"";");

Эл=v8.Документы.ВыслугаЛет.Выбрать(Дата('01.10.15') , Дата('31.10.15'));


Пока Эл.Следующий()<>0 Цикл
     ДокОбъект = Эл.ПолучитьОбъект();
     СтаршийИндекс = Эл.Список.Количество() - 1;
    
     Для Сч = 0 по СтаршийИндекс Цикл
         СтрокаДок= ДокОбъект .Список.Получить(Сч);
         таб      = СтрокаДок.ТабНомер;
         Лет_     = СтрокаДок.Лет;
        
         Если СокрЛП(таб)="5403" тогда
              СтрокаДок.Лет=10;
         КонецЕсли;    
     КонецЦикла;          

КонецЦикла;

andrew76 Подменю пользователя
сообщение 22.10.15, 12:41
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Правильно,иначе 1с 7.7 отказывается вышеприведенный код компилировать.А в 8-ке обращение к элементам ТЧ документа делается через квадратные скобочки.
Разница в синтаксисе.Может есть возможность обратиться к ТЧ документа (Версии 8),минуя эти индексы ?

Petre Подменю пользователя
сообщение 22.10.15, 12:54
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Вместо
ДокОбъект.Список(Сч).Лет=10;

напишите
СтрокаДок.Лет = 10;

И не забудьте записать изменения.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: andrew76,

andrew76 Подменю пользователя
сообщение 23.10.15, 17:26
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Спасибо,всё работает !

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.04.24, 9:00
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!