Запись периодического реквизита в справочнике! 1С 7.7 не типовая
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Добрый день! Помогите записать периодический реквизит справочника!!!
Что не так делаю?
Что не так делаю?
Excel = СоздатьОбъект("Excel.Application");
НазваниеФайла = ФАЙЛ;
Excel.Workbooks.Open(НазваниеФайла);
Книга = Excel.ActiveWorkbook;
Строк = Excel.Cells.CurrentRegion.Rows.Count;
СпрОС = СоздатьОбъект("Справочник.ОсновныеСредства");
СпрСотрудники = СоздатьОбъект("Справочник.Сотрудники");
Для х = 1 По Строк Цикл
НаименованиеТМЦ = СокрЛП(Строка(Excel.Cells(х, 1).Value));
КодОС = СокрЛП(Строка(Excel.Cells(х, 2).Value));
ИнвНомер = СокрЛП(Строка(Excel.Cells(х, 3).Value));
ВидОС = СокрЛП(Строка(Excel.Cells(х, 4).Value));
Подразделение = СокрЛП(Строка(Excel.Cells(х, 5).Value));
ОтветственноеЛицо = СокрЛП(Строка(Excel.Cells(х, 6).Value));
КодМОЛ = СокрЛП(Строка(Excel.Cells(х, 7).Value));
//Сначала ищем товар по коду, если не нашли по наименованию
Если СпрОС.НайтиПоКоду(КодОС) = 1 Тогда
НайдТовар = СпрОС.ТекущийЭлемент();
Сообщить("Код " + НайдТовар + "" + КодОС);
//******************************************************************************
Если СпрСотрудники.НайтиПоКоду(СокрЛП(КодМОЛ)) = 1 Тогда
СпрОС.ИспользоватьДату(ТекущаяДата());
СпрОС.МОЛ = ОтветственноеЛицо;
//Периодич = СоздатьОбъект("Периодический");
//Периодич.ИспользоватьОбъект("МОЛ", НайдТовар);
//Сообщить("Код " + КодМОЛ + "" + СпрСотрудники);
//Периодич.Значение= СпрСотрудники.Наименование;
//Периодич.ДатаЗнач = ТекущаяДата();
//Периодич.Записать();
СпрОС.Записать();
Конецесли;
//******************************************************************************
//СпрОС.ИспользоватьДату(ТекущаяДата());
//СпрОС.МОЛ = ОтветственноеЛицо;
Иначе
Продолжить;
Конецесли;
Конеццикла;
Excel.Workbooks.Close();
ПоказатьПо теме из базы знаний
- Rocket Launcher 7.7. Свертка базы 1С 7.7. Перенос справочников и документов 7.7
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Универсальная обработка по переносу справочников между различными версиями конфигураций 1С (из 1С:7.7 в 1С:8.3, из 1С:7.7 в 1С:8.2, из 1С:8.2 в 1С:8.3, из 1С:8.3 в 1С:8.3)
- Переход с 1С:УПП на 1C:ERP. Переезд пользователей с сохранением прежних прав
- Создаем периодические реквизиты или привет из 1С 7.7
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Да, только в таком случае нужно присваивать через: УстановитьАтрибут(<ИмяРеквизита>,<Значение>)
СпрОС.УстановитьАтрибут("МОЛ",ОтветственноеЛицо);
(13) ditp, Только что работало, а сейчас не находит СпрОС, (Если СпрОС.НайтиПоКоду(СокрЛП(КодОС)) = 1 Тогда ), что не так?
Процедура ВыбратьФайл()
ИмяВыбрФайла = "";
ИмяПути="";
Если ФС.ВыбратьФайл(0, ИмяВыбрФайла, ИмяПути, "Выберите файл для загрузки",
"Все файлы (*.*)!*.*", , ) = 1 Тогда
Путь = ИмяПути + ИмяВыбрФайла;
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура Сформировать()
//Создаем ОЛЕ подключение к Excel
Excel = СоздатьОбъект("Excel.Application");
НазваниеФайла = Путь;
//Открываем файл
Excel.Workbooks.Open(НазваниеФайла);
//Открываем активную книгу
Книга = Excel.ActiveWorkbook;
//Получааем количество строк в книге
Строк = Excel.Cells.CurrentRegion.Rows.Count;
//Создадим заранее объект справочника ТМЦ
СпрОС = СоздатьОбъект("Справочник.ОсновныеСредства");
СпрСотрудники = СоздатьОбъект("Справочник.Сотрудники");
//Перебираем строки и обрабатываем данные
Для х = 1 По Строк Цикл
//Зная типы значений в колонках и перебирая строки получаем
//необходимые значения и обрабатываем их
НаименованиеТМЦ = СокрЛП(Строка(Excel.Cells(х, 1).Value));
КодОС = СокрЛП(Строка(Excel.Cells(х, 2).Value));
ИнвНомер = СокрЛП(Строка(Excel.Cells(х, 3).Value));
ВидОС = СокрЛП(Строка(Excel.Cells(х, 4).Value));
Подразделение = СокрЛП(Строка(Excel.Cells(х, 5).Value));
ОтветственноеЛицо = СокрЛП(Строка(Excel.Cells(х, 6).Value));
КодМОЛ = СокрЛП(Строка(Excel.Cells(х, 7).Value));
//Сначала ищем товар по коду, если не нашли по наименованию
Если СпрОС.НайтиПоКоду(СокрЛП(КодОС)) = 1 Тогда
НайдТовар = СпрОС.ТекущийЭлемент();
Сообщить("Код " + НайдТовар + "" + КодОС);
Если СпрСотрудники.НайтиПоКоду(СокрЛП(КодМОЛ)) = 1 Тогда
СпрОС.МОЛ.Установить(ТекущаяДата(), СпрСотрудники.ТекущийЭлемент());
СпрОС.Записать();
Сообщить();
Конецесли;
Иначе
//Не нашли, продолжаем
//здесь можно создавать товар если надо
Продолжить;
Конецесли;
Конеццикла;
//После загрузки зарываем соединение с Excel
Excel.Workbooks.Close();
КонецПроцедуры
Показать
(14) Nikkkkk, делай так и разбирайся, что за данные приходят из экселя ))
Если СпрСотрудники.НайтиПоКоду(СокрЛП(КодМОЛ)) = 1 Тогда
СпрОС.МОЛ.Установить(ТекущаяДата(), СпрСотрудники.ТекущийЭлемент());
СпрОС.Записать();
Сообщить();
Иначе
Сообщить(КодМОЛ);
Конецесли;
Если СпрСотрудники.НайтиПоКоду(СокрЛП(КодМОЛ)) = 1 Тогда
Поставь перед этим
Сообщить("+" + СокрЛП(КодМОЛ) + "+");
и будешь знать, где у тебя глюк
(21) Nikkkkk,
Если СпрОС.НайтиПоКоду(СокрЛП(КодОС)) = 1 Тогда
НайдТовар = СпрОС.ТекущийЭлемент();
Сообщить("Код " + НайдТовар + "" + КодОС);
Если СпрСотрудники.НайтиПоКоду(СокрЛП(КодМОЛ)) = 1 Тогда
СпрОС.МОЛ.Установить(ТекущаяДата(), СпрСотрудники.ТекущийЭлемент());
СпрОС.Записать();
Сообщить();
Конецесли;
Иначе
Сообщить("Не найдено ОС по коду " + КодОС);
Продолжить;
Конецесли;
ПоказатьНайтиПоКоду(<?>,);
Синтаксис:
НайтиПоКоду(<Код>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по коду.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<Код> - выражение со значением искомого кода,
<ФлагПоиска> - флаг поиска (необязателен):
0 - поиск во всем справочнике вне зависимости от родителя;
1 - поиск внутри установленного подчинения (родителя);
2 - поиск по полному коду через разделитель.
Значение по умолчанию:
0 - если код уникален во всем справочнике;
2 - если код уникален только в группе.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
ПоказатьСинтаксис:
НайтиПоКоду(<Код>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по коду.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<Код> - выражение со значением искомого кода,
<ФлагПоиска> - флаг поиска (необязателен):
0 - поиск во всем справочнике вне зависимости от родителя;
1 - поиск внутри установленного подчинения (родителя);
2 - поиск по полному коду через разделитель.
Значение по умолчанию:
0 - если код уникален во всем справочнике;
2 - если код уникален только в группе.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
Если СпрОС.НайтиПоКоду(СокрЛП(КодОС,0)) = 1 Тогда
СпрСотрудники.ТекущийЭлемент()
это что такое? что ты присваиваешь? не открыта выбора справочника сотрудников и на найден нужный элемент.
а остальное все правильно.
это что такое? что ты присваиваешь? не открыта выбора справочника сотрудников и на найден нужный элемент.
а остальное все правильно.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот