Выгружаю реквизит в файл
Показывать по
10
20
40
сообщений
- 1
- 2
16.12.2009
12:52
#11
так ерунда какая-то, совсем не то %(
{"VT","1",{"0",{{","0","0","0",","2"},
{"Код","Код","1","0","0",{"S","0","0","0","0","0"},","0",
{
}
},
{"ДатаПоступ","ДатаПоступ","1","0","1",{"D","0","0","0","0","0"},","0",
{
}
}}}}
{"VT","1",{"0",{{","0","0","0",","2"},
{"Код","Код","1","0","0",{"S","0","0","0","0","0"},","0",
{
}
},
{"ДатаПоступ","ДатаПоступ","1","0","1",{"D","0","0","0","0","0"},","0",
{
}
}}}}
16.12.2009
13:11
#12
вобщем, всем спасибо, благодаря вашим советам у меня появлялись умные мысли 
все получилось через "списокзначений"
все получилось через "списокзначений"
16.12.2009
13:35
#14
> читать надо через ЗначениеИзФайла!!!
с импортированием реквизита я приду завтра
)))
с импортированием реквизита я приду завтра
17.12.2009
04:20
#15
"Вот и я 
что-то напутано с циклами. Ниже получается, что когда из справочника взят первый элемент, и из файла первый, они сравнились вставили дату, если ее нет, а дальше опять с первым элементом из файла сравнивается следующий элемент из справочника, а мне нужно чтобы при первом совпадении совпавшие коды больше не проходили по циклу...
Спис = СоздатьОбъект("СписокЗначений");
КолСтрок = Файл.КоличествоСтрок();
СпрНом = СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
Пока СпрНом.ПолучитьЭлемент() = 1 Цикл
Если СпрНом.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Для А=1 По КолСтрок Цикл
Стр = Файл.ПолучитьСтроку(А);
Спис.УдалитьВсе();
Спис.ИзСтрокиСРазделителями(Стр);
ТекКод = Спис.ПолучитьЗначение(1);
ТекДатаПоступ = Спис.ПолучитьЗначение(2);
Если (СпрНом.Код = ТекКод) и (ПустоеЗначение(СпрНом.ДатаПоступ)=1)Тогда
СпрНом.ДатаПоступ = ТекДатаПоступ;
Иначе
Сообщить ("Элемента с таким кодом нет в справочнике! Вероятно он был удален. Или реквизит уже заполнен");
продолжить;
КонецЕсли;
КонецЦикла
КонецЦикла;
КонецПроцедуры"
что-то напутано с циклами. Ниже получается, что когда из справочника взят первый элемент, и из файла первый, они сравнились вставили дату, если ее нет, а дальше опять с первым элементом из файла сравнивается следующий элемент из справочника, а мне нужно чтобы при первом совпадении совпавшие коды больше не проходили по циклу...
Спис = СоздатьОбъект("СписокЗначений");
КолСтрок = Файл.КоличествоСтрок();
СпрНом = СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
Пока СпрНом.ПолучитьЭлемент() = 1 Цикл
Если СпрНом.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Для А=1 По КолСтрок Цикл
Стр = Файл.ПолучитьСтроку(А);
Спис.УдалитьВсе();
Спис.ИзСтрокиСРазделителями(Стр);
ТекКод = Спис.ПолучитьЗначение(1);
ТекДатаПоступ = Спис.ПолучитьЗначение(2);
Если (СпрНом.Код = ТекКод) и (ПустоеЗначение(СпрНом.ДатаПоступ)=1)Тогда
СпрНом.ДатаПоступ = ТекДатаПоступ;
Иначе
Сообщить ("Элемента с таким кодом нет в справочнике! Вероятно он был удален. Или реквизит уже заполнен");
продолжить;
КонецЕсли;
КонецЦикла
КонецЦикла;
КонецПроцедуры"
17.12.2009
10:32
#16
"Зачем цикл в цикле, лучше использовать поиск:
Спис = СоздатьОбъект("СписокЗначений");
КолСтрок = Файл.КоличествоСтрок();
СпрНом = СоздатьОбъект("Справочник.Номенклатура");
Для А=1 По КолСтрок Цикл
Стр = Файл.ПолучитьСтроку(А);
Спис.УдалитьВсе();
Спис.ИзСтрокиСРазделителями(Стр);
ТекКод = Спис.ПолучитьЗначение(1);
ТекДатаПоступ = Спис.ПолучитьЗначение(2);
Если СпрНом.НайтиПоКоду(ТекКод)=1 Тогда
Если ПустоеЗначение(СпрНом.ДатаПоступ)=1 Тогда
СпрНом.ДатаПоступ = ТекДатаПоступ;
СпрНом.Записать();
Иначе
Сообщить ("Реквизит уже заполнен");
КонецЕсли;
Иначе
Сообщить ("Элемента с таким кодом нет в справочнике!");
КонецЕсли;
КонецЦикла;
"
Спис = СоздатьОбъект("СписокЗначений");
КолСтрок = Файл.КоличествоСтрок();
СпрНом = СоздатьОбъект("Справочник.Номенклатура");
Для А=1 По КолСтрок Цикл
Стр = Файл.ПолучитьСтроку(А);
Спис.УдалитьВсе();
Спис.ИзСтрокиСРазделителями(Стр);
ТекКод = Спис.ПолучитьЗначение(1);
ТекДатаПоступ = Спис.ПолучитьЗначение(2);
Если СпрНом.НайтиПоКоду(ТекКод)=1 Тогда
Если ПустоеЗначение(СпрНом.ДатаПоступ)=1 Тогда
СпрНом.ДатаПоступ = ТекДатаПоступ;
СпрНом.Записать();
Иначе
Сообщить ("Реквизит уже заполнен");
КонецЕсли;
Иначе
Сообщить ("Элемента с таким кодом нет в справочнике!");
КонецЕсли;
КонецЦикла;
"
- 1
- 2
Читают тему
(гостей: 1)