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

Хранилище

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

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



> пример выгрузки/загрузки в DBF 1C 8.0 , пример выгрузки/загрузки в DBF 1C 8.0          
ruslan Подменю пользователя
сообщение 23.10.09, 12:33
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

дайте пжс пример выгрузки и загрузки в DBF для 1С 8,0, в интернете не нашел, только для 8,1. заранее благодарен

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

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

А в 8.0 Вы пробовали делать так, как описано для 8.1 ?

ruslan Подменю пользователя
сообщение 23.10.09, 13:58
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

не получается загрузить 8,1 для 8,0, говорит что данная версия не может открыть

World1С Подменю пользователя
сообщение 23.10.09, 16:10
Сообщение #4

Оратор
Иконка группы
Квалифицированному 1С программисту
Группа: Местный
Сообщений: 358
Из: г.Луганск, обл.Луганская
Спасибо сказали: 110 раз
Рейтинг: 0

Vofka Имел в виду набрать или скопировать код из обработки для 8.1 и вставить 8.0


Signature
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности.
Оскар Уайлд

Aspirans Подменю пользователя
сообщение 23.10.09, 23:11
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 2 раз
Рейтинг: 0

// Загрузка остатков
    
    ФайлОстатков = Новый XBase;
    ФайлОстатков.Кодировка = КодировкаXBase.OEM;
    ФайлОстатков.ОткрытьФайл(ПутьКТаблицеОстатков);
    ФайлОстатков.Первая();
    
    Пока Не ФайлОстатков.ВКонце() Цикл

        КодКонтрагента = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("ZKPO"));
        Если КодКонтрагента = "" Тогда
            КодКонтрагента = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("IDENKOD"));
        КонецЕсли;            
        НаименованиеКонтрагента = СокрЛП(СтрЗаменить(ФайлОстатков.ПолучитьЗначениеПоля("NAME"),"?","і"));
        Контрагент = ПолучитьКонтрагента(КодКонтрагента,НаименованиеКонтрагента);
        СимволСчета = СокрЛП(ФайлОстатков.ПолучитьЗначениеПоля("SYMBOL"));    
        ОстатокДебет = ФайлОстатков.ПолучитьЗначениеПоля("DB_PP");
        ОстатокКредит = ФайлОстатков.ПолучитьЗначениеПоля("KR_PP");
        
        Документ = Документы.КорректировкаДолга.СоздатьДокумент();
        
        Документ.Организация = Организация;
        Документ.Дата = "20090630235959";
        Документ.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.ВводНачальныхОстатков;
        Если ОстатокДебет > 0 Тогда
            Документ.КонтрагентДебитор = Контрагент;
            Документ.СуммыДолга.Очистить();
            СтрокаСуммыДолга = Документ.СуммыДолга.Добавить();
            СтрокаСуммыДолга.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская;
            СтрокаСуммыДолга.ДоговорКонтрагента = ПолучитьДоговор(Документ.КонтрагентДебитор);
            Если Лев(СимволСчета,3) = "361" Тогда
                СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Покупатель;
            Иначе
                СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Поставщик;
            КонецЕсли;
            СтрокаСуммыДолга.КратностьВзаиморасчетов = 1.00;
            СтрокаСуммыДолга.КурсВзаиморасчетов = 1.00;
            СтрокаСуммыДолга.Сумма = ОстатокДебет;
            СтрокаСуммыДолга.СуммаВзаиморасчетов = ОстатокДебет;
            СтрокаСуммыДолга.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
            СтрокаСуммыДолга.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СимволСчета);
        Иначе
            Документ.КонтрагентДебитор = Контрагент;
            Документ.СуммыДолга.Очистить();
            СтрокаСуммыДолга = Документ.СуммыДолга.Добавить();
            СтрокаСуммыДолга.ВидЗадолженности = Перечисления.ВидыЗадолженности.Кредиторская;
            СтрокаСуммыДолга.ДоговорКонтрагента = ПолучитьДоговор(Документ.КонтрагентДебитор);
            Если Лев(СимволСчета,3) = "361" Тогда
                СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Покупатель;
            Иначе
                СтрокаСуммыДолга.ТипКонтрагента = Перечисления.СтатусыКонтрагентов.Поставщик;
            КонецЕсли;
            СтрокаСуммыДолга.КратностьВзаиморасчетов = 1.00;
            СтрокаСуммыДолга.КурсВзаиморасчетов = 1.00;
            СтрокаСуммыДолга.Сумма = ОстатокКредит;
            СтрокаСуммыДолга.СуммаВзаиморасчетов = ОстатокКредит;
            СтрокаСуммыДолга.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
            СтрокаСуммыДолга.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СимволСчета);
        КонецЕсли;
        Документ.ВалютаДокумента = Валюта;
        Документ.СчетДт = ПланыСчетов.Хозрасчетный.Вспомогательный;
        Документ.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
        Документ.Записать(РежимЗаписиДокумента.Проведение);
        ФайлОстатков.Следующая();
    КонецЦикла;

    ФайлОстатков.ЗакрытьФайл();

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

Aspirans Подменю пользователя
сообщение 23.10.09, 23:13
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 2 раз
Рейтинг: 0

Переносил остатки из FoxPro

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

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 2 раз
Рейтинг: 0

Ну как, ruslan, пригодилось?

Katsy Подменю пользователя
сообщение 04.02.10, 4:41
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Aspirans @ 24.10.09, 8:11) *
// Загрузка остатков

ФайлОстатков = Новый XBase;
ФайлОстатков.Кодировка = КодировкаXBase.OEM;
ФайлОстатков.ОткрытьФайл(ПутьКТаблицеОстатков);
ФайлОстатков.Первая();

//Цикл

ФайлОстатков.ЗакрытьФайл();


Подскажите, пожалуйста, что не так в обработке:
Процедура ЗаполнениеСправочника()
    ФайлНоменклатура = Новый XBase;
    ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
    ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");
    ФайлНоменклатура.Первая();

    счетчик = 1;
    Номенклатура = Справочники.Новый();
    Пока Не ФайлНоменклатура.ВКонце() Цикл
        НаименованиеТовара = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMNAME"));
        ПолноеНаименование = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN1"));
        НаименованиеДляПечати = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN2"));
        БазоваяЕдиница = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMED"));
        Страна = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMST"));
        НомерГТД = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMGTD"));
        КоличествоЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUPAK"));
        ВесЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMVES"));
        ЗакупочнаяЦена = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMSEB"));
        РозничнаяЦенаМин = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMIN"));
        РозничнаяЦенаМакс = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMAX"));
        Валюта = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUE"));
        ЦенаДляСотрудника = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMCENA1"));
        ВидНоменклатуры = "Товар";
        ЕдиницаХраненияОстатков = БазоваяЕдиница;
        ЕдиницаДляОтчетов = БазоваяЕдиница;
        НДС = "18%";
        Если Валюта = 1 тогда
            Категории = "Импортный";
        КонецЕсли;
        Артикул = счетчик;
        счетчик = счетчик + 1;        
    КонецЦикла;

    ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры

World1С Подменю пользователя
сообщение 04.02.10, 8:20
Сообщение #9

Оратор
Иконка группы
Квалифицированному 1С программисту
Группа: Местный
Сообщений: 358
Из: г.Луганск, обл.Луганская
Спасибо сказали: 110 раз
Рейтинг: 0

Цитата
Номенклатура = Справочники.Новый();


а как же, Справочники.<ИмяСправочника>.СоздатьОбъек();....

И потом опишите ошибку, которую выдает система, полностью.


Signature
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности.
Оскар Уайлд

Batchir Подменю пользователя
сообщение 04.02.10, 9:09
Сообщение #10

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Общая схема программного создания и записи элемента справочника:
ТекСправочник = Справочники.<ИмяСправочника>.СоздатьЭлемент();
ТекСправочник.<ИмяРеквизита> = <ЗначениеРеквизита_1>;
...
ТекСправочник.<ИмяРеквизита> = <ЗначениеРеквизита_N>;
ТекСправочник.Записать();

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

Katsy Подменю пользователя
сообщение 04.02.10, 9:38
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Batchir @ 04.02.10, 18:09) *
Общая схема программного создания и записи элемента справочника:
ТекСправочник = Справочники.<ИмяСправочника>.СоздатьОбъект();
ТекСправочник.<ИмяРеквизита> = <ЗначениеРеквизита_1>;
...
ТекСправочник.<ИмяРеквизита> = <ЗначениеРеквизита_N>;
ТекСправочник.Записать();


Ок, но вот так тоже не работает:

Процедура ЗаполнениеСправочника()
    ФайлНоменклатура = Новый XBase;
    ФайлНоменклатура.Кодировка = КодировкаXBase.OEM;
    ФайлНоменклатура.ОткрытьФайл("D:\My documents\Мои документы\SPNM.DBF");
    ФайлНоменклатура.Первая();

    счетчик = 1;
    Пока Не ФайлНоменклатура.ВКонце() Цикл
        Номенклатура = Справочники.Номенклатура.СоздатьОбъект();
        Номенклатура.НаименованиеТовара = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMNAME"));
        Номенклатура.ПолноеНаименование = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN1"));
        Номенклатура.НаименованиеДляПечати = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMPRN2"));
        Номенклатура.БазоваяЕдиница = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMED"));
        Номенклатура.Страна = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMST"));
        Номенклатура.НомерГТД = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMGTD"));
        Номенклатура.КоличествоЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUPAK"));
        Номенклатура.ВесЕдиницы = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMVES"));
        Номенклатура.ЗакупочнаяЦена = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMSEB"));
        Номенклатура.РозничнаяЦенаМин = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMIN"));
        Номенклатура.РозничнаяЦенаМакс = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMMAX"));
        Номенклатура.Валюта = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMUE"));
        Номенклатура.ЦенаДляСотрудника = СокрЛП(ФайлНоменклатура.ПолучитьЗначениеПоля("SPNMCENA1"));
        Номенклатура.ВидНоменклатуры = "Товар";
        Номенклатура.ЕдиницаХраненияОстатков = Номенклатура.БазоваяЕдиница;
        Номенклатура.ЕдиницаДляОтчетов = Номенклатура.БазоваяЕдиница;
        Номенклатура.НДС = "18%";
        Если Номенклатура.Валюта = 1 тогда
            Номенклатура.Категории = "Импортный";
        КонецЕсли;
        Номенклатура.Артикул = счетчик;
        Номенклатура.Записать();
        счетчик = счетчик + 1;        
    КонецЦикла;

    ФайлНоменклатура.ЗакрытьФайл();
КонецПроцедуры


World1С, система ошибок не выдает.

World1С Подменю пользователя
сообщение 04.02.10, 10:56
Сообщение #12

Оратор
Иконка группы
Квалифицированному 1С программисту
Группа: Местный
Сообщений: 358
Из: г.Луганск, обл.Луганская
Спасибо сказали: 110 раз
Рейтинг: 0

Цитата
Справочники.Номенклатура.СоздатьОбъект();


не правильно!

Цитата
Синтаксис-помошник

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
СоздатьЭлемент (CreateItem)
Синтаксис:
СоздатьЭлемент()
Возвращаемое значение:
Тип: СправочникОбъект.
Описание:
Создает новый элемент справочника.
Примечание:
Использование метода не приводит к записи созданного объекта в базу данных.
Пример:
НовыйОбъект = Справочники.Валюты.СоздатьЭлемент();
НовыйОбъект.Код = "840";
НовыйОбъект.Наименование = "USD";
НовыйОбъект.ПолноеНаименование = "Доллары США";
НовыйОбъект.Записать();


Signature
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности.
Оскар Уайлд

Batchir Подменю пользователя
сообщение 04.02.10, 10:57
Сообщение #13

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

А Вы проверяли , в цикл входите или нет?

Batchir Подменю пользователя
сообщение 04.02.10, 11:00
Сообщение #14

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Цитата(World1С @ 04.02.10, 11:56) *
не правильно!


Извиняюсь  icon_beer17.gif
Исправил на
ТекСправочник = Справочники.<ИмяСправочника>.СоздатьЭлемент();

World1С Подменю пользователя
сообщение 04.02.10, 11:09
Сообщение #15

Оратор
Иконка группы
Квалифицированному 1С программисту
Группа: Местный
Сообщений: 358
Из: г.Луганск, обл.Луганская
Спасибо сказали: 110 раз
Рейтинг: 0

Сам, такое же "запорол". Проверил себя, решил исправиться. 32000000.gif

Спасибо Вам... icon_beer17.gif


Signature
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности.
Оскар Уайлд

Batchir Подменю пользователя
сообщение 04.02.10, 11:23
Сообщение #16

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

А так же




ФайлНоменклатура.Первая();

Пока Не ФайлНоменклатура.ВКонце() Цикл
// текст цикла
ФайлНоменклатура.Следующая(); // этого не хватает
КонецЦикла;

Katsy Подменю пользователя
сообщение 04.02.10, 12:05
Сообщение #17

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Разобралась. Тема закрыта.

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


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

 

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