Ввод начальных остатков - учет по партиям
Показывать по
10
20
40
сообщений
- 1
- 2
15.09.2010
12:53
#11
Здравствуйте!
Я точно также переношу данные с помощью универсального обмена данными и точно также у меня нет партий. Только вот ошибка у меня "Деление на 0". Возможно вы сталкивались с такой ошибкой? Как ее обойти? Ошибка возникает при выгрузке из БП 1.6.25.6 (8.1.15.14)
Я точно также переношу данные с помощью универсального обмена данными и точно также у меня нет партий. Только вот ошибка у меня "Деление на 0". Возможно вы сталкивались с такой ошибкой? Как ее обойти? Ошибка возникает при выгрузке из БП 1.6.25.6 (8.1.15.14)
15.09.2010
13:11
#12
Наконец-то хоть кто-то попал на эти грабли , а то центр телеграфирует , что деление на 0 у них невозможно . Я писал в 1-с , они ответили , что не может быть ! и пришлите нам тестовый пример с вашей базой. В общем это было обойдено с помощью изменения файла правил переноса, по-топорному ,т.к. нет у меня программного средства, могущего полноправно менять файл правил под названием ACC16_20.xml
Удачи!
Удачи!
15.09.2010
13:25
#13
> Накт.к. нет у меня программного средства, могущего полноправно менять файл правил под названием ACC16_20.xml
Так установите, в чем проблема?
Так установите, в чем проблема?
15.09.2010
13:28
#14
Уважаемая Tanya, у мня проблем нет , это у предыдущего оратора деление на 0. Может вы подскажите как с помощью правильного ввода документов не делиться на 0?
15.09.2010
13:47
#15
> Уважаемая Tanya, у мня проблем нет
А кто писал об отсутствии программного обеспечения для правки файла правил обмена?
> , это у предыдущего оратора деление на 0.
У меня пока такой ошибки не было.
А кто писал об отсутствии программного обеспечения для правки файла правил обмена?
> , это у предыдущего оратора деление на 0.
У меня пока такой ошибки не было.
15.09.2010
14:10
#16
Подскажите, пожалуйста, что именно вы изменили в файле правил переноса, что обошли эту ошибку?
15.09.2010
14:38
#17
"1. открыл с помощью XML Notepad 2007
в Правилах выгрузки данных
4 группа Входящие остатки
16 правило Остатки материалы
Перед обработкой правило
2. убрал "Коэфф = НоваяСтрока.Количество/МассивДанныхНДС.Итог("Количество");"
и все места где этот Коэфф УПОМИНАЕТСЯ подчистил . Вот текст исходника (это самый конец данного пункта правил)
Кстати - это единственное место , где перед делением нет проверки на не 0 И КАК МЫ С ВАМИ ПОПАЛИ!!!
Запрос.Текст =
"ВЫБРАТЬ
| НДСПартииТоваровОстатки.Организация,
| НДСПартииТоваровОстатки.СчетУчета,
| НДСПартииТоваровОстатки.Номенклатура,
| НДСПартииТоваровОстатки.Склад,
| НДСПартииТоваровОстатки.Партия,
| НДСПартииТоваровОстатки.СчетФактура,
| НДСПартииТоваровОстатки.НДСВключенВСтоимость,
| НДСПартииТоваровОстатки.ВидЦенности,
| НДСПартииТоваровОстатки.СчетУчетаНДС,
| НДСПартииТоваровОстатки.СтавкаНДС,
| НДСПартииТоваровОстатки.КоличествоОстаток КАК Количество,
| НДСПартииТоваровОстатки.СтоимостьОстаток КАК Стоимость,
| НДСПартииТоваровОстатки.НДСОстаток КАК НДС,
| 0 КАК Ключ,
| 0 КАК НомерСтрокиТЧ
|ИЗ
| РегистрНакопления.НДСПартииТоваров.Остатки(&ДатаСведений, СчетУчета В (&СписокСчетов)) КАК НДСПартииТоваровОстатки";
РезультатЗапросаПоПартиямНДС = Запрос.Выполнить().Выгрузить();
ТаблицаДанных = РезультатЗапроса.СкопироватьКолонки();
ТаблицаДанныхНДС = РезультатЗапросаПоПартиямНДС.СкопироватьКолонки();
ТаблицаОрганизаций = РезультатЗапроса.Скопировать(,"Организация,СчетУчета");
ТаблицаОрганизаций.Свернуть("Организация,СчетУчета",);
Для Каждого СтрокаТаблицыОрганизаций ИЗ ТаблицаОрганизаций Цикл
ТекОрганизация = СтрокаТаблицыОрганизаций.Организация;
ТекСчетУчета = СтрокаТаблицыОрганизаций.СчетУчета;
ПрименениеУСН = НалоговыйУчетУСН.ПрименениеУСН(ТекОрганизация, ДатаНачала);
Предприниматель = ДоходыИРасходыПредпринимателя.Предприниматель(ТекОрганизация, ДатаНачала);
Если Предприниматель Тогда
УчетнаяПолитикаНеЗадана = Истина;
УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаНачала, УчетнаяПолитикаНеЗадана, ТекОрганизация);
Если УчетнаяПолитикаНеЗадана Тогда
ОсновнойХарактерДеятельности = Неопределено;
ОсновнаяНоменклатурнаяГруппа = Неопределено;
Иначе
ОсновнойХарактерДеятельности = УчетнаяПолитика.ОсновнойХарактерДеятельности;
ОсновнаяНоменклатурнаяГруппа = УчетнаяПолитика.ОсновнаяНоменклатурнаяГруппа;
КонецЕсли;
КонецЕсли;
ТаблицаДанных.Очистить();
ТаблицаДанныхНДС.Очистить();
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", ТекОрганизация);
СтруктураОтбора.Вставить("СчетУчета", ТекСчетУчета);
МассивДанных = РезультатЗапроса.НайтиСтроки(СтруктураОтбора);
Для Н=1 По МассивДанных.Количество() Цикл
НоваяСтрока = ТаблицаДанных.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,МассивДанных.Получить(Н-1));
НоваяСтрока.Ключ = Н;
НоваяСтрока.НомерСтрокиТЧ = Н;
Если Предприниматель Тогда
Если НоваяСтрока.ХарактерДеятельности = Неопределено Тогда
НоваяСтрока.ХарактерДеятельности = ОсновнойХарактерДеятельности;
КонецЕсли;
Если НоваяСтрока.НоменклатурнаяГруппа = Неопределено Тогда
НоваяСтрока.НоменклатурнаяГруппа = ОсновнаяНоменклатурнаяГруппа;
КонецЕсли;
КонецЕсли;
//Формируем таблицу по партиям НДС
Если РезультатЗапросаПоПартиямНДС.Количество() <> 0 Тогда
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", ТекОрганизация);
СтруктураОтбора.Вставить("СчетУчета", ТекСчетУчета);
СтруктураОтбора.Вставить("Номенклатура", НоваяСтрока.Номенклатура);
Если Параметры.ВестиСуммовойУчетПоСкладамБУ Тогда
СтруктураОтбора.Вставить("Склад", НоваяСтрока.Склад);
КонецЕсли;
СтруктураОтбора.Вставить("Партия", НоваяСтрока.Партия);
МассивДанныхНДС = РезультатЗапросаПоПартиямНДС.Скопировать(СтруктураОтбора);
Если МассивДанныхНДС.Количество() <> 0 Тогда
Коэфф = НоваяСтрока.Количество/МассивДанныхНДС.Итог("Количество");
Для НС=1 По МассивДанныхНДС.Количество() Цикл
НоваяСтрокаНДС = ТаблицаДанныхНДС.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрокаНДС,МассивДанныхНДС.Получить(НС-1));
НоваяСтрокаНДС.Ключ = НоваяСтрока.Ключ;
НоваяСтрокаНДС.НомерСтрокиТЧ = НС;
НоваяСтрокаНДС.Количество = НоваяСтрокаНДС.Количество*Коэфф;
НоваяСтрокаНДС.Стоимость = НоваяСтрокаНДС.Стоимость*Коэфф;
НоваяСтрокаНДС.НДС = НоваяСтрокаНДС.НДС*Коэфф;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТаблицаДанных.Количество() <> 0 Тогда
ВходящиеДанные = Новый Структура("Комментарий, Организация, ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете, ОтражатьПоСпециальнымРегистрам, ПодразделениеОрганизации, РазделУчета, ОС, НМА, БухСправка, ДанныеПоСФ, ДанныеПоСФНДС, ДопРасходыИП, ДопРасходыУСН, МПЗОтгруженные, МПЗПриобретенные, МПЗРеализованныеИП, МПЗРеализованныеУСН, Обороты, ПрочиеРасходыИП, РасходыБудущихПериодов, РасчетыПоЗаработнойПлате, РасчетыПоНалогамИСборам, РасчетыСКонтрагентами, РасчетыСПодотчетнымиЛицами, УслугиУСН");
ВходящиеДанные.Организация = ТекОрганизация;
ВходящиеДанные.ОтражатьВБухгалтерскомУчете = Истина;
ВходящиеДанные.ОтражатьВНалоговомУчете = Истина;
ВходящиеДанные.ОтражатьПоСпециальнымРегистрам = Истина;
ВходящиеДанные.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
ВходящиеДанные.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков[РазделУчета];
ВходящиеДанные.МПЗПриобретенные = ТаблицаДанных;
ВходящиеДанные.ДанныеПоСФ = ТаблицаДанныхНДС;
ВходящиеДанные.Комментарий = "#Счет учета: """"" + Строка(ТекСчетУчета) + """""# #Раздел учета """"" + Строка(Перечисления.РазделыУчетаДляВводаОстатков[РазделУчета]) + """""# #Перенесено из 1С:Бухгалтерии 8, ред. 1.6#";
//Дополнение входящих данных пустыми таблицами
ВходящиеДанные.ОС = Новый ТаблицаЗначений;
ВходящиеДанные.НМА = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыПоНалогамИСборам = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыСПодотчетнымиЛицами = Новый ТаблицаЗначений;
ВходящиеДанные.БухСправка = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыСКонтрагентами = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыПоЗаработнойПлате = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗОтгруженные = Новый ТаблицаЗначений;
ВходящиеДанные.Обороты = Новый ТаблицаЗначений;
ВходящиеДанные.ДанныеПоСФНДС = Новый ТаблицаЗначений;
ВходящиеДанные.РасходыБудущихПериодов = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗРеализованныеИП = Новый ТаблицаЗначений;
ВходящиеДанные.ДопРасходыИП = Новый ТаблицаЗначений;
ВходящиеДанные.ПрочиеРасходыИП = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗРеализованныеУСН = Новый ТаблицаЗначений;
ВходящиеДанные.ДопРасходыУСН = Новый ТаблицаЗначений;
ВходящиеДанные.УслугиУСН = Новый ТаблицаЗначений;
//***
ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ВводНачальныхОстатковНаДату");
КонецЕсли;
КонецЦикла;
3. может это и неправильно, Но жить - то хочется . Тем более дальше всплыли камни покруче этого деления на о . много остатков по материалам скорректировалось на 0.001 или в + или в - . И т.д. и и т.п.
УДАЧИ!
"
в Правилах выгрузки данных
4 группа Входящие остатки
16 правило Остатки материалы
Перед обработкой правило
2. убрал "Коэфф = НоваяСтрока.Количество/МассивДанныхНДС.Итог("Количество");"
и все места где этот Коэфф УПОМИНАЕТСЯ подчистил . Вот текст исходника (это самый конец данного пункта правил)
Кстати - это единственное место , где перед делением нет проверки на не 0 И КАК МЫ С ВАМИ ПОПАЛИ!!!
Запрос.Текст =
"ВЫБРАТЬ
| НДСПартииТоваровОстатки.Организация,
| НДСПартииТоваровОстатки.СчетУчета,
| НДСПартииТоваровОстатки.Номенклатура,
| НДСПартииТоваровОстатки.Склад,
| НДСПартииТоваровОстатки.Партия,
| НДСПартииТоваровОстатки.СчетФактура,
| НДСПартииТоваровОстатки.НДСВключенВСтоимость,
| НДСПартииТоваровОстатки.ВидЦенности,
| НДСПартииТоваровОстатки.СчетУчетаНДС,
| НДСПартииТоваровОстатки.СтавкаНДС,
| НДСПартииТоваровОстатки.КоличествоОстаток КАК Количество,
| НДСПартииТоваровОстатки.СтоимостьОстаток КАК Стоимость,
| НДСПартииТоваровОстатки.НДСОстаток КАК НДС,
| 0 КАК Ключ,
| 0 КАК НомерСтрокиТЧ
|ИЗ
| РегистрНакопления.НДСПартииТоваров.Остатки(&ДатаСведений, СчетУчета В (&СписокСчетов)) КАК НДСПартииТоваровОстатки";
РезультатЗапросаПоПартиямНДС = Запрос.Выполнить().Выгрузить();
ТаблицаДанных = РезультатЗапроса.СкопироватьКолонки();
ТаблицаДанныхНДС = РезультатЗапросаПоПартиямНДС.СкопироватьКолонки();
ТаблицаОрганизаций = РезультатЗапроса.Скопировать(,"Организация,СчетУчета");
ТаблицаОрганизаций.Свернуть("Организация,СчетУчета",);
Для Каждого СтрокаТаблицыОрганизаций ИЗ ТаблицаОрганизаций Цикл
ТекОрганизация = СтрокаТаблицыОрганизаций.Организация;
ТекСчетУчета = СтрокаТаблицыОрганизаций.СчетУчета;
ПрименениеУСН = НалоговыйУчетУСН.ПрименениеУСН(ТекОрганизация, ДатаНачала);
Предприниматель = ДоходыИРасходыПредпринимателя.Предприниматель(ТекОрганизация, ДатаНачала);
Если Предприниматель Тогда
УчетнаяПолитикаНеЗадана = Истина;
УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаНачала, УчетнаяПолитикаНеЗадана, ТекОрганизация);
Если УчетнаяПолитикаНеЗадана Тогда
ОсновнойХарактерДеятельности = Неопределено;
ОсновнаяНоменклатурнаяГруппа = Неопределено;
Иначе
ОсновнойХарактерДеятельности = УчетнаяПолитика.ОсновнойХарактерДеятельности;
ОсновнаяНоменклатурнаяГруппа = УчетнаяПолитика.ОсновнаяНоменклатурнаяГруппа;
КонецЕсли;
КонецЕсли;
ТаблицаДанных.Очистить();
ТаблицаДанныхНДС.Очистить();
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", ТекОрганизация);
СтруктураОтбора.Вставить("СчетУчета", ТекСчетУчета);
МассивДанных = РезультатЗапроса.НайтиСтроки(СтруктураОтбора);
Для Н=1 По МассивДанных.Количество() Цикл
НоваяСтрока = ТаблицаДанных.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,МассивДанных.Получить(Н-1));
НоваяСтрока.Ключ = Н;
НоваяСтрока.НомерСтрокиТЧ = Н;
Если Предприниматель Тогда
Если НоваяСтрока.ХарактерДеятельности = Неопределено Тогда
НоваяСтрока.ХарактерДеятельности = ОсновнойХарактерДеятельности;
КонецЕсли;
Если НоваяСтрока.НоменклатурнаяГруппа = Неопределено Тогда
НоваяСтрока.НоменклатурнаяГруппа = ОсновнаяНоменклатурнаяГруппа;
КонецЕсли;
КонецЕсли;
//Формируем таблицу по партиям НДС
Если РезультатЗапросаПоПартиямНДС.Количество() <> 0 Тогда
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", ТекОрганизация);
СтруктураОтбора.Вставить("СчетУчета", ТекСчетУчета);
СтруктураОтбора.Вставить("Номенклатура", НоваяСтрока.Номенклатура);
Если Параметры.ВестиСуммовойУчетПоСкладамБУ Тогда
СтруктураОтбора.Вставить("Склад", НоваяСтрока.Склад);
КонецЕсли;
СтруктураОтбора.Вставить("Партия", НоваяСтрока.Партия);
МассивДанныхНДС = РезультатЗапросаПоПартиямНДС.Скопировать(СтруктураОтбора);
Если МассивДанныхНДС.Количество() <> 0 Тогда
Коэфф = НоваяСтрока.Количество/МассивДанныхНДС.Итог("Количество");
Для НС=1 По МассивДанныхНДС.Количество() Цикл
НоваяСтрокаНДС = ТаблицаДанныхНДС.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрокаНДС,МассивДанныхНДС.Получить(НС-1));
НоваяСтрокаНДС.Ключ = НоваяСтрока.Ключ;
НоваяСтрокаНДС.НомерСтрокиТЧ = НС;
НоваяСтрокаНДС.Количество = НоваяСтрокаНДС.Количество*Коэфф;
НоваяСтрокаНДС.Стоимость = НоваяСтрокаНДС.Стоимость*Коэфф;
НоваяСтрокаНДС.НДС = НоваяСтрокаНДС.НДС*Коэфф;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТаблицаДанных.Количество() <> 0 Тогда
ВходящиеДанные = Новый Структура("Комментарий, Организация, ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете, ОтражатьПоСпециальнымРегистрам, ПодразделениеОрганизации, РазделУчета, ОС, НМА, БухСправка, ДанныеПоСФ, ДанныеПоСФНДС, ДопРасходыИП, ДопРасходыУСН, МПЗОтгруженные, МПЗПриобретенные, МПЗРеализованныеИП, МПЗРеализованныеУСН, Обороты, ПрочиеРасходыИП, РасходыБудущихПериодов, РасчетыПоЗаработнойПлате, РасчетыПоНалогамИСборам, РасчетыСКонтрагентами, РасчетыСПодотчетнымиЛицами, УслугиУСН");
ВходящиеДанные.Организация = ТекОрганизация;
ВходящиеДанные.ОтражатьВБухгалтерскомУчете = Истина;
ВходящиеДанные.ОтражатьВНалоговомУчете = Истина;
ВходящиеДанные.ОтражатьПоСпециальнымРегистрам = Истина;
ВходящиеДанные.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
ВходящиеДанные.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков[РазделУчета];
ВходящиеДанные.МПЗПриобретенные = ТаблицаДанных;
ВходящиеДанные.ДанныеПоСФ = ТаблицаДанныхНДС;
ВходящиеДанные.Комментарий = "#Счет учета: """"" + Строка(ТекСчетУчета) + """""# #Раздел учета """"" + Строка(Перечисления.РазделыУчетаДляВводаОстатков[РазделУчета]) + """""# #Перенесено из 1С:Бухгалтерии 8, ред. 1.6#";
//Дополнение входящих данных пустыми таблицами
ВходящиеДанные.ОС = Новый ТаблицаЗначений;
ВходящиеДанные.НМА = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыПоНалогамИСборам = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыСПодотчетнымиЛицами = Новый ТаблицаЗначений;
ВходящиеДанные.БухСправка = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыСКонтрагентами = Новый ТаблицаЗначений;
ВходящиеДанные.РасчетыПоЗаработнойПлате = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗОтгруженные = Новый ТаблицаЗначений;
ВходящиеДанные.Обороты = Новый ТаблицаЗначений;
ВходящиеДанные.ДанныеПоСФНДС = Новый ТаблицаЗначений;
ВходящиеДанные.РасходыБудущихПериодов = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗРеализованныеИП = Новый ТаблицаЗначений;
ВходящиеДанные.ДопРасходыИП = Новый ТаблицаЗначений;
ВходящиеДанные.ПрочиеРасходыИП = Новый ТаблицаЗначений;
ВходящиеДанные.МПЗРеализованныеУСН = Новый ТаблицаЗначений;
ВходящиеДанные.ДопРасходыУСН = Новый ТаблицаЗначений;
ВходящиеДанные.УслугиУСН = Новый ТаблицаЗначений;
//***
ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ВводНачальныхОстатковНаДату");
КонецЕсли;
КонецЦикла;
3. может это и неправильно, Но жить - то хочется . Тем более дальше всплыли камни покруче этого деления на о . много остатков по материалам скорректировалось на 0.001 или в + или в - . И т.д. и и т.п.
УДАЧИ!
"
- 1
- 2
Читают тему
(гостей: 1)