| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Загрузка из DBF |
| Автор: bucdapus 23.3.2009, 09:56 |
| Делаю перенос данных из ДБФ в 1С сделал перенос контрагентов и товара, но вот с документами возникают проблемы. не могу присвоить номер новому документу из ДБФ. пишет ошибку : {Форма.ЗагрИзДБФ(233)}: Значение не является значением объектного типа (Номер) Приход.Номер = Формат(Строка(БазаДБФ.Number),"ЧГ=0"); где БазаДБФ - это ДБФ файл из которого берутся данные. Приход - Приход = Документы.ПоступлениеТоваровУслуг; Кстати тоже самое и с датой!! |
| Автор: Широкий 23.3.2009, 14:21 |
| Приход = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); |
| Автор: bucdapus 23.3.2009, 14:51 |
| эта строка у меня есть. |
| Автор: Широкий 23.3.2009, 14:55 |
| Запости код |
| Автор: bucdapus 23.3.2009, 15:13 |
| Приход = Документы.ПоступлениеТоваровУслуг; СпрЕдиницы = Справочники.КлассификаторЕдиницИзмерения; Приход = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(Формат(БазаДБФ.Number/1,"ЧГ=0")); Если Приход.Пустая() тогда Если БазаДБФ.Line = 1 Тогда Приход = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); Приход.Номер = Формат(Строка(БазаДБФ.Number),"ЧГ=0"); Приход.Дата = БазаДБФ.date; Приход.Организация = Справочники.Организации.НайтиПоКоду("000000001"); Приход.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643"); Приход.Контрагент = Справочники.Контрагенты.НайтиПоКоду(БазаДБФ.Direct); |
| Автор: Широкий 23.3.2009, 15:17 | ||
Вот так работает?
|
| Автор: bucdapus 23.3.2009, 15:36 |
| Спасибо вроде бы прокатило вышла ошибка дальше но ее сам исправить попробую |
| Автор: Широкий 23.3.2009, 16:18 |
| В чем ошибка то была хоть понял? |
| Автор: bucdapus 23.3.2009, 16:27 |
| вот вообщем накладную я создал и записал с твоей помощью. но теперь похожая ошибка при заполнении таблички товаров: НоваяСтрока = Приход.Товары.Вствить(БазаДБФ.Line); //на этой строке ошибка НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(БазаДБФ.Good); НоваяСтрока.Количество = БазаДБФ.Amount; НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номенклатура.ВыбратьЭлемент(); НоваяСтрока.Коэффициент = 1; НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118; НоваяСтрока.Сумма = БазаДБФ.Sumz; НоваяСтрока.СуммаНДС = (БазаДБФ.Sumz*18)/118; НоваяСтрока.Цена = (БазаДБФ.Sumz-((БазаДБФ.Sumz*18)/118))/БазаДБФ.Amount; Добавлено через 44 секунды Нет ошибку не понял если объяснишь буду благодарен!!! |
| Автор: bucdapus 24.3.2009, 12:27 |
| так проблему решил вот таким образом: НоваяСтрокаОбъект = ПриходОбъект.Товары.Добавить(); НоваяСтрокаОбъект.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(БазаДБФ.Good); НоваяСтрокаОбъект.Количество = БазаДБФ.Amount; НоваяСтрокаОбъект.ЕдиницаИзмерения = НоваяСтрокаОбъект.Номенклатура.БазоваяЕдиницаИзмерения; НоваяСтрокаОбъект.Коэффициент = 1; НоваяСтрокаОбъект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118; НоваяСтрокаОбъект.Сумма = БазаДБФ.Sumz; НоваяСтрокаОбъект.СуммаНДС = (БазаДБФ.Sumz*18)/118; НоваяСтрокаОбъект.Цена = (БазаДБФ.Sumz)/БазаДБФ.Amount; ПриходОбъект.Записать(); но есть вопросик вот в таком варианте НоваяСтрокаОбъект.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(БазаДБФ.Good); поиск идет иерархически или нет, т.к мне нада что он искал во всех группах и подгруппах |
| Автор: bucdapus 24.3.2009, 14:56 | ||
не понял этой фразы? |
| Автор: bucdapus 25.3.2009, 10:39 |
| вот появилась проблема но не пойму в чем. в этой строке зеленым цветом НоваяСтрокаОбъект = ПриходОбъект.Товары.Добавить(); НоваяСтрокаОбъект.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(БазаДБФ.Good); НоваяСтрокаОбъект.Количество = БазаДБФ.Amount; отмечено что я в таблице товары заполняю наименование товара но открыв накладную там пусто хотя в справочнике номенклатура такая позиция есть |
| Автор: Широкий 25.3.2009, 21:54 |
| СП - синтаксис помощник (F1) Насчет твоего кода - хорошо бы вставить проверку , найден ли элемент.. Потом ты уверен что "БазаДБФ.Good" - это точно код элемента а не наименование? |
| Автор: bucdapus 26.3.2009, 09:38 |
| да насчет БазаДБФ.Good уверен точно это именнно код элемента |
| Автор: bucdapus 30.3.2009, 13:51 |
| не могу составить сам алгоритм загрузки схематично чтобы написать его на 1с, а нужно загрузить этот файл в документы(поступление Товаров и услуг) прикриплен ниже, где Number---номер накладной, Date ---дата накладной, Direct ---это по номеру контрагента берется из справочника контрагентов, Good --- это по номеру товара берется из справочника номенклатура, Amount ---это колво товара в документе, Sumz --- это конечная сумма товара(из нее потом sumz/amount берем цену), line ---позиция товара в накладной. саму обработку написал но из за того что алгоритм неправильный загружает только товар с позицией Line=1 каждую накладную... а вот line = 2,3,4,5,6,7 и т.д не хочет только сам алгоритм схематично нужно |
| Автор: bucdapus 3.4.2009, 11:03 |
| вот существует такая строка где идет расчет НДС от суммы товаров НоваяСтрокаОбъект.СуммаНДС = (БазаДБФ.Sumz*18)/118; но это принудительный расчет НДС от суммы. а как можно реализорвать эту строку через стандартные функции(уже прописаные в 1с), как вот например при изменении товара меняется сразу цена.и автоматом все остальное сумма,ндс... |
| Автор: Широкий 3.4.2009, 11:07 |
| В УТ Например ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); |
| Автор: bucdapus 3.4.2009, 11:25 |
| хорошо попробую... может прокатит |
| Автор: bucdapus 14.4.2009, 15:57 |
| хотел создать новую тему но думаю толкать так уж в одну тему. вопрос такой когда в 1с зделал отгрузку товара(создал документ) то нажав правой кнопкой мыши вибираем из списка Ввести на основании--->реализация и ОК. Все готово все хорошо. но я документ отгрузку делаю программно как сделать программно реализацию т.е ввести на основании и запись документа. |