yadeva
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору У меня не получается сделать из 1С 7.7 обработки обработку для 1С 8.2 листинг вот такой: // Выбираем файл .txt из исходного каталога Перем ИмяФайла; Процедура ВыбратьФайлНажатие(Элемент) //Объявляем переменные ИмяФайла=""; ф=""; ПутьКФайлу=""; //открываем диалог выбора файла Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл..."; Диалог.ПредварительныйПросмотр = Ложь; Диалог.МножественныйВыбор = Ложь; Диалог.Фильтр = "Текстовые файлы (*.txt)|*.txt"; Диалог.Каталог = "D:\ЭТК"; Если Диалог.Выбрать() Тогда ПутьКФайлу = Диалог.ПолноеИмяФайла; ИмяФайла=Диалог.Каталог+ПутьКФайлу; Иначе Возврат; КонецЕсли; //читаем файл Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); Строка = Текст.ПрочитатьСтроку(); Пока Строка <> Неопределено Цикл Строка = Текст.ПрочитатьСтроку(); Сообщить(Строка); КонецЦикла; КонецПроцедуры // Процедура выполнить // В данной процедуре будут создаваться акты списания и поступления & НаКлиенте Процедура КнопкаВыполнитьНажатие(Кнопка) //Т=СоздатьОбъект("Таблица Значений"); //Т.НоваяКолонка("Серия","Строка",13); //Т.НоваяКолонка("Номер","Строка",5); //Т.НоваяКолонка("ЭТК","Справочник.БСО"); // Файл = СоздатьОбъект("Текст"); Т=Новый ТаблицаЗначений; Т.Колонки.Добавить("Серия","Строка",13); Т.Колонки.Добавить("Номер","Строка",5); Т.Колонки.Добавить("ЭТК","Справочник.БСО"); Файл = новый ТекстовыйДокумент; Файл.КодоваяСтраница(0); Попытка Файл.Открыть(ИмяФайла); Исключение Предупреждение("Файл не выбран"); Возврат; КонецПопытки; Стр=""; КоличествоСтрок=Файл.КоличествоСтрок(); //Бланк=СоздатьОбъект("Справочник.БСО"); Бланк=Справочники.БСО.СоздатьЭлемент(); Для НомерСтроки=1 По КоличествоСтрок Цикл Стр=СокрЛП(Файл.ПолучитьСтроку(НомерСтроки)); //СокрЛП(Стр); Т.НоваяСтрока(); Серия=Лев(Стр,12); Номер=Сред(Стр,13,6); Т.Серия=Серия; Т.Номер=Номер; Бланк.ИспользоватьВладельца(ВидБланка); Если Найти(ВидБланка.Код, "00000002")=1 Тогда Бланк.НайтиПоКоду(Число(Номер)-547900); КонецЕсли; Если Найти(ВидБланка.Код, "00000003")=1 Тогда Бланк.НайтиПоКоду(Число(Номер)-539880); КонецЕсли; Флаг=0; Если (Найти(Бланк.Серия,Серия)=1) И (Найти(Бланк.НомерБланка,Номер)=1) И (Бланк.ПометкаУдаления()=0) Тогда Флаг=1; Сообщить("ЭТК" "+серия+" "+Номер+" "найдена"); Иначе Бланк.ВыбратьЭлементы(); Пока Бланк.ПолучитьЭлемент()=1 Цикл Если (Найти(Бланк.Серия,Серия)=1) И (Найти(Бланк.НомерБланка,Номер)=1) И (Бланк.ПометкаУдаления()=0) Тогда Флаг=1; Сообщить("ЭТК" "+серия+" "+Номер+" "найдена");Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Если Флаг=1 Тогда Т.ЭТК=Бланк.ТекущийЭлемент(); КонецЕсли; КонецЦикла; Если Т.КоличествоСтрок()=0 Тогда Возврат; КонецЕсли; Сообщить("Найдено "+Т.КоличествоСтрок()+" карт"); Если Поступление=1 Тогда //Док=СоздатьОбъект("Документ.БСО_Поступление"); Док = Документы.БСО_Поступление.СоздатьДокумент(); Док.Новый(); Док.ДатаДок=ДатаДок; //Организация=СоздатьОбъект("Справочник.Организации"); Организация=Справочники.Организации.НайтиПоКоду(); Если Организация.НайтиПоКОду("00001")=1 Тогда Док.ВыбраннаяОрганизация=Организация.Текущийлемент() КонецЕсли; Док.ВидБСО=ВидБланка; Док.МестоХранения=МестоХранения; Док.КодВидаДеятельности=Перечисление.КодВидаДеятельности.Бюджет; Док.ОтКогоПолучено=ОтКогоПолучено; Док.ПервичныйДокумент=ПервичныйДок; Т.ВыбратьСтроки(); Пока Т.ПолучитьСтроку=1 Цикл Если ПустоеЗначение(Т.ЭТК)=0 Тогда Док.НоваяСтрока(); Док.БланкСтрогойОтчетности=Т.ЭТК; Док.Количество=1; Док.Цена=1; Док.Сумма=1; Сообщить("ЭТК"+ Т.Серия+" " +Т.Номер+" добавлена в документ"); Иначе Сообщить("ЭТК"+ Т.Серия+" " +Т.Номер+" не найдена в справочнике"); КонецЕсли; КонецЦикла; Док.Записать(); Сообщить("Создан документ Поступление БСО №"+Док.НомерДок+ "от "+Док.ДатаДок); КонецЕсли; //Если Списание=1 Тогда //Док=СоздатьОбъект("Документ.БСО_Списание"); Если Списание=1 Тогда Док = Документы.БСО_Списание.СоздатьДокумент(); Док.Новый(); Док.ДатаДок=ДатаДок; //Организация=СоздатьОбъект("Справочник.Организации"); Организация=Справочники.Организации.НайтиПоКоду(); Если Организация.НайтиПоКоду("00001")=1 Тогда Док.ВыбраннаяОрганизация=Организация.Текущийлемент(); Док.ВидБСО=ВидБланка; Док.МестоХранения=МестоХранения; Док.КодВидаДеятельности=Перечисление.КодВидаДеятельности.Бюджет; Док.НомерПриказа=НомерПриказа; Док.ДатаПриказа=ДатаПриказа; Док.Председатель=Председатель; Док.ЧленКомиссии1=ЧленКомиссии1; Док.ЧленКомиссии2=ЧленКомиссии2; Он мне выдает вот такие ошибки: Док.КодВидаДеятельности=<<?>>Перечисление.КодВидаДеятельности.Бюджет; {Обработка.ЭТК.Форма.Форма(135,29)}: Переменная не определена (Перечисление) Док.КодВидаДеятельности=<<?>>Перечисление.КодВидаДеятельности.Бюджет; {Обработка.ЭТК.Форма.Форма(109,8)}: Процедура или функция с указанным именем не определена (ПустоеЗначение) Если <<?>>ПустоеЗначение(Т.ЭТК)=0 Тогда {Обработка.ЭТК.Форма.Форма(146,11)}: Процедура или функция с указанным именем не определена (ПустоеЗначение) Если <<?>>ПустоеЗначение(Т.ЭТК)=0 Тогда |