28.10.2011 13:30
Цитата:
konvik Андрей, а что за поле INCOME выдает? Выходят суммы, не понятно какие, ни с чем не сходятся. Остальное все получилось - общая сумма с 10%, общая сумма с 18%, сумма без ндс 10% и сумма без НДС18.
как бы должна быть себестоимость. и как бы должна срастаться с Отчеты - Бухгалтерские - Товарный отчет (в закупочных ценах). По крайней мере продажи. Возвраты не проверял, я их только под тебя приделал, но по смыслу тоже должна быть себестоимость. По первичным приходам.
28.10.2011 13:32
...по цепочке приход->продажа->возврат
28.10.2011 13:40
О, про себестоимость я не подумала даже :) Спасибо! Тогда все класс!
01.11.2011 11:24
А есть у кого нибудь хоть какая то выгрузка из супермага в 1с 8.2. Понятно что каждому надо свое (свое я добавлю...). Кто-то же уже делал наверное, просто что бы хоть знат от чего отталкиваться...
01.11.2011 15:41
перем ОбъектДок;
Сообщить(строка(ТекущаяДата()));
Текст = Новый ЧтениеТекста("C:\Vigruz\Документы (OLAP).txt", КодировкаТекста.ANSI);
Стр = Текст.ПрочитатьСтроку();
Стр = Текст.ПрочитатьСтроку();
КолстрТек = 0;
Пока Стр <> Неопределено Цикл
КолстрТек = КолстрТек+1;
Стр = Текст.ПрочитатьСтроку();
КонецЦикла;

Текст = Новый ЧтениеТекста("C:\Vigruz\Документы (OLAP).txt", КодировкаТекста.ANSI);
Стр = Текст.ПрочитатьСтроку();
Стр = Текст.ПрочитатьСтроку();
НомстрТ = 1;

ЭлементыФормы.ИндикаторДействия.Видимость = Истина;
ЭлементыФормы.ИндикаторДействия.МаксимальноеЗначение = КолстрТек;
ЭлементыФормы.ИндикаторДействия.Значение = 0;

ДокПоступлениеТов = Документы.ПоступлениеТоваровУслуг;
y1 = 1;
ПредАрт ="";
//НачатьТранзакцию();
НащкодДок1 = "";
Пока Стр <> Неопределено Цикл
Y1 = y1+1;


НомстрТ = НомстрТ+1;
ДатаДок = Дата(ИзДатыДату(ПолучитьСтр(Стр,1)));
НащкодДок = СокрЛП(ПолучитьСтр(Стр,2));
КодДок = Прав(СокрЛП(ПолучитьСтр(Стр,2)),11);
КодМХ = СокрЛП(ПолучитьСтр(Стр,4));
КодМХ = УстановитьНули(КодМХ,9);
КодПост = СокрЛП(ПолучитьСтр(Стр,5));
Если КодПост<>"" Тогда
КодПост = УстановитьНули(КодПост,9);
КонецЕсли;
если Справочники.Контрагенты.НайтиПоКоду(КодПост)=Справочники.Контрагенты.ПустаяСсылка() тогда
КодПост = "0"+КодПост;
Если не (справочники.ФизическиеЛица.НайтиПоКоду(КодПост) =Справочники.ФизическиеЛица.ПустаяСсылка())Тогда
ЭтоПодотчетник = 1;
КонецЕсли;
иначе
ЭтоПодотчетник = 0;
КонецЕсли;
КодПокуп = СокрЛП(ПолучитьСтр(Стр,6));
Если КодПокуп<>"" Тогда
КодПокуп = УстановитьНули(КодПокуп,9);
КонецЕсли;
Если СокрЛП(ПолучитьСтр(Стр,7))<>"" тогда
OpCode = число(ПолучитьСтр(Стр,7));
иначе
OpCode = -99;
КонецЕсли;
Если СокрЛП(ПолучитьСтр(Стр,8))<>"" тогда
UserOp = число(ПолучитьСтр(Стр,8));
иначе
UserOp = -99;
КонецЕсли;
Если СокрЛП(ПолучитьСтр(Стр,9))<>"" тогда
Сумма = число(ПолучитьСтр(Стр,9));
иначе
Сумма = 0;
КонецЕсли;
Если СокрЛП(ПолучитьСтр(Стр,10))<>"" тогда
Кол = число(ПолучитьСтр(Стр,10));
иначе
Кол = 0;
КонецЕсли;
Если СокрЛП(ПолучитьСтр(Стр,12))<>"" тогда
Цена = число(ПолучитьСтр(Стр,12));
иначе
Цена = 0;
КонецЕсли;
Артикул = сокрЛП(ПолучитьСтр(Стр,11));

НайдТов1 = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
Если ЗначениеЗаполнено(НайдТов1) тогда

// Поступление Товаров (0) ******************************************************
Если OpCode = 0 тогда
Если ЭтоПодотчетник = 0 тогда
НайденДок = ДокПоступлениеТов.НайтиПоНомеру(КодДок,ДатаДок);
Если не (НащкодДок1 = "") тогда
Если НайденДок.Метаданные().Имя<> ОбъектДок.Метаданные().Имя Тогда
НащкодДок1 = "";
Конецесли;
Конецесли;

если (НащкодДок1 = "") или (НащкодДок<>НащкодДок1) тогда

Если не (НащкодДок1 = "") тогда
ОбъектДок.Записать();
КонецЕсли;

Если не ЗначениеЗаполнено(НайденДок) тогда
ОбъектДок = ДокПоступлениеТов.СоздатьДокумент();
Иначе
ОбъектДок = НайденДок.ПолучитьОбъект();
ОбъектДок.Товары.Очистить();
КонецЕсли;
Если ОбъектДок.ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ

// Заполнить реквизиты значениями по умолчанию.
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ОбъектДок, глЗначениеПеременной("глТекущийПользователь"),ОбъектДок.мВалютаРегламентированногоУчета , "Покупка",);

Если ОбъектДок.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ВПереработку Тогда
ОбъектДок.УчитыватьНДС = Ложь;
ОбъектДок.СуммаВключаетНДС = Ложь;
КонецЕсли;
ОбъектДок.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
ОбъектДок.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным;
ОбъектДок.КурсВзаиморасчетов = 1;
ОбъектДок.КратностьВзаиморасчетов = 1;
ОбъектДок.УчитыватьНДС = Ложь;

КонецЕсли;
ОбъектДок.Склад = Справочники.Склады.НайтиПоКоду(КодМХ);

ОбъектДок.Дата = ДатаДок;
ОбъектДок.Номер = КодДок;
// ОбъектДок.Контрагент = Справочники.Контрагенты.НайтиПоКоду(КодПост);
мСписокВидовДоговоров = Новый СписокЗначений;
мСписокВидовДоговоров.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);
мСписокВидовДоговоров.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(ОбъектДок,мСписокВидовДоговоров);

ОбъектДок.Записать();

НащкодДок1 = НащкодДок;
НовстрДок = ОбъектДок.Товары.Добавить();
НовстрДок.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
ОбъектДок.ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(НовстрДок, "Товары", Истина, Истина);
НовстрДок.ЕдиницаИзмерения = НовстрДок.Номенклатура.БазоваяЕдиницаИзмерения;
НовстрДок.Коэффициент = 1;
НовстрДок.Количество = Кол;
НовстрДок.Цена = Цена;
НовстрДок.Сумма = кол*цена;
ПредАрт =Артикул;

иначе
Если ПредАрт <> Артикул тогда
НовстрДок = ОбъектДок.Товары.Добавить();
НовстрДок.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
ОбъектДок.ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(НовстрДок, "Товары", Истина, Истина);
НовстрДок.ЕдиницаИзмерения = НовстрДок.Номенклатура.БазоваяЕдиницаИзмерения;
НовстрДок.Коэффициент = 1;
НовстрДок.Количество = Кол;
НовстрДок.Цена = Цена;
НовстрДок.Сумма = кол*цена;
ПредАрт =Артикул;
КОнецесли;

Конецесли;
01.11.2011 15:42
Это только поступление товаров, с проверкой поставщик или подотчетник
05.11.2011 17:11
Выгружаю Приходные накладные из 1С с одной галкой через xml формат. Чрез какое то время Необходимо эти документы перевести в две галки. Смена DOCSTATE с 2 на 3 в xml файле не проходит. Сам SM в этом случае передает SFPZ файлы (чем их можно редактировать?). Каким образом при перегрузке документов можно поменять статус документа без SFPZ файлов?
06.11.2011 13:29
Цитата:
Смена DOCSTATE с 2 на 3 в xml файле не проходит
Ошибку приема xml-пакета почтовиком СМ в студию.
06.11.2011 17:34
Цитата:
vdm Ошибку приема xml-пакета почтовиком СМ в студию.
----- Ошибка приема -----
Пакет: 061111172755_3.SVP
Тип объекта: Приходная накладная
Идентификатор объекта: ПН26-05905
-- Уровень вложения 0 --
Сообщение: Невозможно обновить в БД объект «WI, ПН26-05905», таблица «SMDOCUMENTS»
Исключение: Sm.Core.BaseException
Источник: Sm.Post.DbLoader
Метод: Void WriteExistingObject(Sm.Server.Database.OracleTransConn, Sm.Post.PostObject)
-- Уровень вложения 1 --
Сообщение: ORA-20047: Два разных объекта имеют одинаковые идентификаторы
ORA-06512: на "SUPERMAG.CORE", line 300
ORA-06512: на "SUPERMAG.SMDOCUMENTSBORNIN", line 17
ORA-04088: ошибка во время выполнения триггера 'SUPERMAG.SMDOCUMENTSBORNIN'

Исключение: System.Data.OracleClient.OracleException
Источник: System.Data
Метод: Int32 UpdatedRowStatusErrors(System.Data.Common.RowUpdatedEventArgs, BatchCommandInfo[], Int32)
Данные:
параметры: pID=«ПН26-05905»; pDOCTYPE=«WI»; pBORNIN=«D4207CF00DB6D44E82E02D42004076E3A041003EFBEBB040»; pCLIENTINDEX=«46»; pCOMMENTARY=« № 357419 от 28.10.11»; pCREATEDAT=«28.10.2011 6:57:56»; pCURRENCYMULTORDER=«0»; pCURRENCYRATE=«1»; pCURRENCYTYPE=«1»; pDOCSTATE=«3»; pISROUBLES=«1»; pLOCATION=«»; pLOCATIONFROM=«»; pLOCATIONTO=«28»; pOPCODE=«0»; pPRICEROUNDMODE=«3»; pTOTALSUM=«1533,96»; pTOTALSUMCUR=«1533,96»; pUSEROP=«»
соединено с: База даных=TVPRCO; Пользователь=Supermag
текст команды: Update Supermag.SMDOCUMENTS set BORNIN=:pBORNIN,CLIENTINDEX=:pCLIENTINDEX,COMMENTARY=:pCOMMENTARY,CREATEDAT=:pCREATEDAT,CURRENCYMULTORDER=:pCURRENCYMULTORDER,CURRENCYRATE=:pCURRENCYRATE,CURRENCYTYPE=:pCURRENCYTYPE,DOCSTATE=:pDOCSTATE,ISROUBLES=:pISROUBLES,LOCATION=:pLOCATION,LOCATIONFROM=:pLOCATIONFROM,LOCATIONTO=:pLOCATIONTO,OPCODE=:pOPCODE,PRICEROUNDMODE=:pPRICEROUNDMODE,TOTALSUM=:pTOTALSUM,TOTALSUMCUR=:pTOTALSUMCUR,USEROP=:pUSEROP where ID=:pID and DOCTYPE=:pDOCTYPE
тип команды: Text
06.11.2011 17:45
Поле BORNIN заполнили неправильно, судя по всему. Обрати внимание, какой он у существующего дока и какой ему подсовываешь.
Часовой пояс GMT +3, время: 10:29.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.