|
Списывает с 43 а не с 41го - допилино глянте код | ☑ | ||
---|---|---|---|---|
0
zmeyako999
23.12.11
✎
13:49
|
Вообщем франчами когда-то прикручен документ отгрузка населению,
не пойму алгоритма как он выбирает с 41го или с 43 списывать, номенклатура одна и та же, как он партии то берет: = Сч43; // Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; //эц ПИА 23.04.2009 + //Проводка.СчетДт = Сч90_02_1; Проводка.СчетДт = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_02_2,Сч90_02_1); //эц ПИА 23.04.2009 . БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НоменклатурныеГруппы",ВидНоменклатуры); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"СтавкиНДС",СтрокаТаблицы.СтавкаНДС); //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Подразделения",Подразделение); Если Проводка.СчетДт.УчетПоПодразделениям Тогда Проводка.ПодразделениеДт = Подразделение; КонецЕсли; //эц ПИА 2010.12.29 . Проводка.СчетКт = СчетУчета; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура",СтрокаТаблицы.Номенклатура); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады",Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Партии",Строчка43.Партия); Проводка.КоличествоКт = КоличествоПроводки43; Проводка.Сумма = СуммаПроводки43; // НадоСписать = НадоСписать - КоличествоПроводки43; пСебестоимость = пСебестоимость + СуммаПроводки43; Строчка43.УжеПрошло = Строчка43.УжеПрошло + КоличествоПроводки43; Строчка43.СуммаУжеПрошло = Строчка43.СуммаУжеПрошло + СуммаПроводки43; КонецЦикла; Если НадоСписать > 0 Тогда //эц ПИА 2010.10.06 . Для каждого Строчка из ТаблицаОстатков Цикл Если Строчка.Номенклатура <> СтрокаТаблицы.Номенклатура Тогда Продолжить; КонецЕсли; КоличествоНаСкладеПоПартии = Строчка.КоличествоОстатокДт - Строчка.УжеПрошло; Если КоличествоНаСкладеПоПартии <= 0 Тогда Продолжить; КонецЕсли; //СуммаНаСкладеПоПартии = Макс(Строчка.СуммаОстатокДт, 0); КоличествоПроводки = Мин(НадоСписать,КоличествоНаСкладеПоПартии); СуммаПроводки = Строчка.СуммаОстатокДт/Строчка.КоличествоОстатокДт*КоличествоПроводки; Если КоличествоПроводки = КоличествоНаСкладеПоПартии Тогда СуммаПроводки = Строчка.СуммаОстатокДт - Строчка.СуммаУжеПрошло; КонецЕсли; СчетУчета = Сч41_01; // Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; //эц ПИА 23.04.2009 + //Проводка.СчетДт = Сч90_02_1; Проводка.СчетДт = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_02_2,Сч90_02_1); //эц ПИА 23.04.2009 . БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НоменклатурныеГруппы",ВидНоменклатуры); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"СтавкиНДС",СтрокаТаблицы.СтавкаНДС); //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Подразделения",Подразделение); Если Проводка.СчетДт.УчетПоПодразделениям Тогда Проводка.ПодразделениеДт = Подразделение; КонецЕсли; |
|||
1
hhhh
23.12.11
✎
13:53
|
ну вот же
Проводка.СчетКт = СчетУчета; то есть берет из переменной СчетУчета, однозначно. |
|||
2
zmeyako999
23.12.11
✎
13:55
|
то есть берет от счета прихода? то есть или от поступления или от выпуска
|
|||
3
Fish
23.12.11
✎
13:56
|
Код неполный. Что такое:
= Сч43; ??????? Но если по логике то вот условие: Если НадоСписать > 0 Тогда .... СчетУчета = Сч41_01; .... Что непонятно? |
|||
4
hhhh
23.12.11
✎
13:57
|
(2) ну какой счет там указан в документе, такой и берет. От какого еще выпуска?
|
|||
5
zmeyako999
23.12.11
✎
13:59
|
там выпуск допилен
|
|||
6
Reset
23.12.11
✎
14:00
|
(3) Там поди было написано: Сч41_01 = Сч43;
:D |
|||
7
zmeyako999
23.12.11
✎
14:02
|
(6) неа как написано так и скопировал
|
|||
8
Fish
23.12.11
✎
14:07
|
(7) Это фантастика. :)))
|
|||
9
zmeyako999
23.12.11
✎
14:13
|
вот вечно оборжут а у меня беда - гонит минуса по 43 а по 41.01 остаток
|
|||
10
zmeyako999
23.12.11
✎
14:14
|
мне капать в сторону партий или в сторону документов прихода на 43 и 41-й? в ручную там нигде нельзя счета выбрать
|
|||
11
Fish
23.12.11
✎
14:15
|
Никто пока еще не ржал, но читай внимательно (3).
В (7) явный бред, ибо если написать строчку "= Сч43;", то будет ошибка "Неопознанный оператор". Приведи полный код процедуры. |
|||
12
zmeyako999
23.12.11
✎
14:21
|
(11)
Процедура ОбработкаПроведения(Отказ, Режим) Сч62_01 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); Сч90_01_1 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"); Сч90_02_1 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); Сч76_05 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.05"); Сч41_01 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01"); //эц ПИА 23.04.2009 + Сч90_01_2 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.2"); Сч90_02_2 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.2"); //эц ПИА 23.04.2009 . Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто3 КАК Партия, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.КоличествоОстатокДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Период, | Счет = &Счет, | , | Субконто2 = &Склад | И Организация = &Организация) КАК ХозрасчетныйОстатки"; //эц ПИА 2011.01.26 + //Запрос.УстановитьПараметр("Период",Дата); Запрос.УстановитьПараметр("Период",МоментВремени()); Запрос.УстановитьПараметр("Организация",Организация); //эц ПИА 2011.04.07 //эц ПИА 2011.01.26 . Запрос.УстановитьПараметр("Счет",Сч41_01); Запрос.УстановитьПараметр("Склад",Склад); ТаблицаОстатков = Запрос.Выполнить().Выгрузить(); ТаблицаОстатков.Колонки.Добавить("УжеПрошло"); ТаблицаОстатков.ЗаполнитьЗначения(0,"УжеПрошло"); ТаблицаОстатков.Колонки.Добавить("СуммаУжеПрошло"); ТаблицаОстатков.ЗаполнитьЗначения(0,"СуммаУжеПрошло"); //эц ПИА 2010.10.06 + Сч43 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("43"); ЗапросОстатковПо43 = Новый Запрос; ЗапросОстатковПо43.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто3 КАК Партия, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.КоличествоОстатокДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Период, | Счет = &Счет, | , | Субконто2 = &Склад | И Организация = &Организация) КАК ХозрасчетныйОстатки"; //эц ПИА 2011.01.26 + //ЗапросОстатковПо43.УстановитьПараметр("Период",Дата); ЗапросОстатковПо43.УстановитьПараметр("Период",МоментВремени()); ЗапросОстатковПо43.УстановитьПараметр("Организация",Организация); //эц ПИА 2011.04.07 //эц ПИА 2011.01.26 . ЗапросОстатковПо43.УстановитьПараметр("Счет",Сч43); ЗапросОстатковПо43.УстановитьПараметр("Склад",Склад); ТаблицаОстатковПо43 = ЗапросОстатковПо43.Выполнить().Выгрузить(); ТаблицаОстатковПо43.Колонки.Добавить("УжеПрошло"); ТаблицаОстатковПо43.ЗаполнитьЗначения(0,"УжеПрошло"); ТаблицаОстатковПо43.Колонки.Добавить("СуммаУжеПрошло"); ТаблицаОстатковПо43.ЗаполнитьЗначения(0,"СуммаУжеПрошло"); //эц ПИА 2010.10.06 . //эц ПИА 10.02.2011 + Сч62_02 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); ЗапросАвансов = Новый Запрос; ЗапросАвансов.УстановитьПараметр("Счет62_02",Сч62_02); ЗапросАвансов.УстановитьПараметр("Контрагент",Контрагент); ЗапросАвансов.УстановитьПараметр("Договор",Договор); ЗапросАвансов.УстановитьПараметр("Период",МоментВремени()); ЗапросАвансов.УстановитьПараметр("Организация",Организация); ЗапросАвансов.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто3 КАК ДокументРасчетов, | -ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Период, | Счет = &Счет62_02, | , | Субконто1 = &Контрагент | И Субконто2 = &Договор | И Организация = &Организация) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.СуммаОстаток < 0 | |УПОРЯДОЧИТЬ ПО | ХозрасчетныйОстатки.Субконто3.Дата"; ВыборкаАвансов = ЗапросАвансов.Выполнить().Выгрузить(); //эц ПИА 10.02.2011 . //Проводка.Организация = Организация; Для Каждого СтрокаТаблицы Из Продажи Цикл ВыручкаПредъявленная = СтрокаТаблицы.СуммаСУчетомЛьгот + СтрокаТаблицы.Субсидия; РасчНДС = СтрокаТаблицы.СуммаНДС; Если СтрокаТаблицы.Льгота = Перечисления.Льготы.БезЛьгот Тогда РасчНДС = СтрокаТаблицы.СуммаНДС; ИначеЕсли СтрокаТаблицы.Льгота = Перечисления.Льготы.Льгота50 Тогда РасчНДС = СтрокаТаблицы.СуммаНДС*0.5; ИначеЕсли СтрокаТаблицы.Льгота = Перечисления.Льготы.Льгота30 Тогда РасчНДС = СтрокаТаблицы.СуммаНДС*0.7; ИначеЕсли СтрокаТаблицы.Льгота = Перечисления.Льготы.Льгота100 Тогда РасчНДС = 0; ИначеЕсли СтрокаТаблицы.Льгота = Перечисления.Льготы.Субсидия Тогда РасчНДС = 0; Иначе Сообщить("Номер строки "+СтрокаТаблицы.НомерСтроки+": не выбрана льгота"); КонецЕсли; // выясним, чему равен ВидНоменклатуры // Если СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Уголь Тогда ВидНоменклатуры = СтрокаТаблицы.Номенклатура.НоменклатурнаяГруппа; ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Доставка Тогда ВидНоменклатуры = Константы.ВНУгольДоставка.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Взвешивание Тогда ВидНоменклатуры = Константы.ВНУгольВзвешивание.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Погрузка Тогда ВидНоменклатуры = Константы.ВНУгольПогрузка.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Дрова Тогда ВидНоменклатуры = СтрокаТаблицы.Номенклатура.НоменклатурнаяГруппа; ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Доставка Тогда ВидНоменклатуры = Константы.ВНДроваДоставка.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Погрузка Тогда ВидНоменклатуры = Константы.ВНДроваПогрузка.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Взвешивание Тогда ВидНоменклатуры = Константы.ВНДроваВзвешивание.Получить(); ИначеЕсли СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Прочее Тогда ВидНоменклатуры = Константы.ВНПрочее.Получить(); Иначе ВидНоменклатуры = ""; Сообщить("Номер строки "+СтрокаТаблицы.НомерСтроки+": не выбран вид номенклатуры"); КонецЕсли; //эц ПИА 2011.04.18 + Если НЕ ?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД) Тогда ЗапросСоотНГ = Новый Запрос; ЗапросСоотНГ.Текст = "ВЫБРАТЬ | СоответствияНоменклатурныхГрупп.НоменклатурнаяГруппаНеЕНВД |ИЗ | РегистрСведений.СоответствияНоменклатурныхГрупп КАК СоответствияНоменклатурныхГрупп |ГДЕ | СоответствияНоменклатурныхГрупп.НоменклатурнаяГруппаЕНВД = &НоменклатурнаяГруппаЕНВД"; ЗапросСоотНГ.УстановитьПараметр("НоменклатурнаяГруппаЕНВД",ВидНоменклатуры); ВыборкаСоотНГ = ЗапросСоотНГ.Выполнить().Выбрать(); Если ВыборкаСоотНГ.Следующий() Тогда ВидНоменклатуры = ВыборкаСоотНГ.НоменклатурнаяГруппаНеЕНВД; КонецЕсли; КонецЕсли; //эц ПИА 2011.04.18 . Если (СтрокаТаблицы.Закон.ТоннажПропускать = 0) и (СтрокаТаблицы.КоммерческаяПродажа = 0) Тогда //эц ПИА 10.02.2011 + ОсталосьРаспрПоАвансам = ВыручкаПредъявленная; Для каждого СтрАв из ВыборкаАвансов Цикл Если ОсталосьРаспрПоАвансам = 0 Тогда Прервать; КонецЕсли; Если СтрАв.СуммаОстаток = 0 Тогда Продолжить; КонецЕсли; МинСумма = Мин(ОсталосьРаспрПоАвансам,СтрАв.СуммаОстаток); ОсталосьРаспрПоАвансам = ОсталосьРаспрПоАвансам - МинСумма; СтрАв.СуммаОстаток = СтрАв.СуммаОстаток - МинСумма; Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; Проводка.СчетДт = Сч62_02; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Контрагенты",Контрагент); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Договоры",Договор); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"ДокументыРасчетовСКонтрагентами",СтрАв.ДокументРасчетов); Проводка.СчетКт = Сч62_01; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Контрагенты",Контрагент); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Договоры",Договор); Проводка.Сумма = МинСумма; КонецЦикла; //эц ПИА 10.02.2011 . // эц ров 21.04.2008 + //эц ПИА 23.04.2009 + //СчетВыручки = Сч90_01_1; СчетВыручки = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_01_2,Сч90_01_1); //эц ПИА 23.04.2009 . СубконтоВыручки = ВидНоменклатуры; Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда СчетаУчета = БухгалтерскийУчет.ПолучитьСчетаУчетаНоменклатуры(Организация, СтрокаТаблицы.Номенклатура); Если ЗначениеЗаполнено(СчетаУчета.СчетДоходов) Тогда //СчетВыручки = СчетаУчета.СчетДоходовБУ; Если НЕ ЗначениеЗаполнено(СубконтоВыручки) Тогда СубконтоВыручки = СтрокаТаблицы.Номенклатура.НоменклатурнаяГруппа; КонецЕсли; КонецЕсли; КонецЕсли; // эц ров 21.04.2008 . Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; Проводка.СчетДт = Сч62_01; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Контрагенты",Контрагент); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Договоры",Договор); Проводка.СчетКт = СчетВыручки; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт,"НоменклатурныеГруппы" , СубконтоВыручки); //эц ПИА 23.04.2009 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтавкиНДС", СтрокаТаблицы.СтавкаНДС); Если СчетВыручки <> Сч90_01_2 Тогда БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтавкиНДС", СтрокаТаблицы.СтавкаНДС); КонецЕсли; //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Подразделения",Подразделение); Если Проводка.СчетКт.УчетПоПодразделениям Тогда Проводка.ПодразделениеКт = Подразделение; КонецЕсли; //эц ПИА 2010.12.29 . //эц ПИА 23.04.2009 . Проводка.Сумма = ВыручкаПредъявленная; Если СтрокаТаблицы.Неподтвержденное = 1 Тогда Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; Проводка.СчетДт = Сч76_05; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Контрагенты",Константы.Министерство); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Договоры",Константы.Министерство.ОсновнойДоговор); //эц ПИА 23.04.2009 + //Проводка.СчетКт = Сч90_01_1; Проводка.СчетКт = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_01_2,Сч90_01_1); //эц ПИА 23.04.2009 . БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт,"НоменклатурныеГруппы" , ВидНоменклатуры); //эц ПИА 23.04.2009 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтавкиНДС", СтрокаТаблицы.СтавкаНДС); Если НЕ ?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД) Тогда БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтавкиНДС", СтрокаТаблицы.СтавкаНДС); КонецЕсли; //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Подразделения",Подразделение); Если Проводка.СчетКт.УчетПоПодразделениям Тогда Проводка.ПодразделениеКт = Подразделение; КонецЕсли; //эц ПИА 2010.12.29 . //эц ПИА 23.04.2009 . Проводка.Сумма = СтрокаТаблицы.Сумма - ВыручкаПредъявленная;; //Проводка = Движения.Хозрасчетный.Добавить(); // нет, но надо // Операция.НоваяПроводка(); // Проводка.Организация = Организация; // Операция.НомерЖурнала = "ФР"; // Операция.СодержаниеПроводки = "Неподтвержденная льгота"; // Операция.ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст); // Операция.Кредит.Счет = СчетПоКоду("ПТ.0"); // Операция.Кредит.НеподтвержденныеДокументы = ТекущийДокумент(); // Операция.Кредит.Подразделения = Подразделение; // Операция.Кредит.НомераСтрокДокументов = РегНомерСтроки; // Операция.Количество = Количество; // Операция.Сумма = Сумма; КонецЕсли; КонецЕсли; Если СтрокаТаблицы.Субсидия<>0 Тогда Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; Проводка.СчетДт = Сч62_01; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Контрагенты",ОрганСоцзащиты); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Договоры",ДоговорСоцЗащиты); Проводка.СчетКт = Сч62_01; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоДт,"Контрагенты",Контрагент); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоДт,"Договоры",Договор); Проводка.Сумма = СтрокаТаблицы.Субсидия; КонецЕсли; //нет, но надо //Операция.НоваяПроводка(); //Операция.Дебет.Счет = СчетПоКоду("ПВЛ"); //Операция.Дебет.ВидыНоменклатуры = ВидНоменклатуры; //Операция.Дебет.Подразделения = Подразделение; //Операция.Кредит.Счет = СчетПоКоду("ПВЛ"); //Операция.Кредит.ВидыНоменклатуры = ВидНоменклатуры; //Операция.Кредит.Подразделения = Подразделение; //Операция.Сумма = Сумма-СуммаНДС; Если ((СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Уголь) или (СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Дрова)) и (СтрокаТаблицы.Закон.ТоннажПропускать = 0) Тогда // пСебестоимость = 0; НадоСписать = СтрокаТаблицы.Количество; // //Запрос.УстановитьПараметр("Номенклатура",СтрокаТаблицы.Номенклатура); //Выборка = Запрос.Выполнить().Выбрать(); //Пока Выборка.Следующий() Цикл //эц ПИА 2010.10.06 + Для каждого Строчка43 из ТаблицаОстатковПо43 Цикл Если Строчка43.Номенклатура <> СтрокаТаблицы.Номенклатура Тогда Продолжить; КонецЕсли; КоличествоНаСкладеПоПартии43 = Строчка43.КоличествоОстатокДт - Строчка43.УжеПрошло; Если КоличествоНаСкладеПоПартии43 <= 0 Тогда Продолжить; КонецЕсли; КоличествоПроводки43 = Мин(НадоСписать,КоличествоНаСкладеПоПартии43); СуммаПроводки43 = Строчка43.СуммаОстатокДт / Строчка43.КоличествоОстатокДт * КоличествоПроводки43; Если КоличествоПроводки43 = КоличествоНаСкладеПоПартии43 Тогда СуммаПроводки43 = Строчка43.СуммаОстатокДт - Строчка43.СуммаУжеПрошло; КонецЕсли; СчетУчета = Сч43; // Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; //эц ПИА 23.04.2009 + //Проводка.СчетДт = Сч90_02_1; Проводка.СчетДт = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_02_2,Сч90_02_1); //эц ПИА 23.04.2009 . БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НоменклатурныеГруппы",ВидНоменклатуры); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"СтавкиНДС",СтрокаТаблицы.СтавкаНДС); //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Подразделения",Подразделение); Если Проводка.СчетДт.УчетПоПодразделениям Тогда Проводка.ПодразделениеДт = Подразделение; КонецЕсли; //эц ПИА 2010.12.29 . Проводка.СчетКт = СчетУчета; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура",СтрокаТаблицы.Номенклатура); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады",Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Партии",Строчка43.Партия); Проводка.КоличествоКт = КоличествоПроводки43; Проводка.Сумма = СуммаПроводки43; // НадоСписать = НадоСписать - КоличествоПроводки43; пСебестоимость = пСебестоимость + СуммаПроводки43; Строчка43.УжеПрошло = Строчка43.УжеПрошло + КоличествоПроводки43; Строчка43.СуммаУжеПрошло = Строчка43.СуммаУжеПрошло + СуммаПроводки43; КонецЦикла; Если НадоСписать > 0 Тогда //эц ПИА 2010.10.06 . Для каждого Строчка из ТаблицаОстатков Цикл Если Строчка.Номенклатура <> СтрокаТаблицы.Номенклатура Тогда Продолжить; КонецЕсли; КоличествоНаСкладеПоПартии = Строчка.КоличествоОстатокДт - Строчка.УжеПрошло; Если КоличествоНаСкладеПоПартии <= 0 Тогда Продолжить; КонецЕсли; //СуммаНаСкладеПоПартии = Макс(Строчка.СуммаОстатокДт, 0); КоличествоПроводки = Мин(НадоСписать,КоличествоНаСкладеПоПартии); СуммаПроводки = Строчка.СуммаОстатокДт/Строчка.КоличествоОстатокДт*КоличествоПроводки; Если КоличествоПроводки = КоличествоНаСкладеПоПартии Тогда СуммаПроводки = Строчка.СуммаОстатокДт - Строчка.СуммаУжеПрошло; КонецЕсли; СчетУчета = Сч41_01; // Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Организация = Организация; Проводка.Период = Дата; //эц ПИА 23.04.2009 + //Проводка.СчетДт = Сч90_02_1; Проводка.СчетДт = ?(?(ПризнакЕНВДвТабЧасти,СтрокаТаблицы.ЕНВД,ЕНВД),Сч90_02_2,Сч90_02_1); //эц ПИА 23.04.2009 . БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"НоменклатурныеГруппы",ВидНоменклатуры); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"СтавкиНДС",СтрокаТаблицы.СтавкаНДС); //эц ПИА 2010.12.29 изменял под 2.0 + //БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Подразделения",Подразделение); Если Проводка.СчетДт.УчетПоПодразделениям Тогда Проводка.ПодразделениеДт = Подразделение; КонецЕсли; //эц ПИА 2010.12.29 . Проводка.СчетКт = СчетУчета; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура",СтрокаТаблицы.Номенклатура); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады",Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Партии",Строчка.Партия); Проводка.КоличествоКт = КоличествоПроводки; Проводка.Сумма = СуммаПроводки; // НадоСписать = НадоСписать - КоличествоПроводки; пСебестоимость = пСебестоимость + СуммаПроводки; Строчка.УжеПрошло = Строчка.УжеПрошло + КоличествоПроводки; Строчка.СуммаУжеПрошло = Строчка.СуммаУжеПрошло + СуммаПроводки; КонецЦикла; КонецЕсли; КонецЕсли; //эц ПИА 04.06.2009 + Если (СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Доставка ИЛИ СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Взвешивание ИЛИ СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.У_Погрузка ИЛИ СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Доставка ИЛИ СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Погрузка ИЛИ СтрокаТаблицы.ВидПродажи = Перечисления.ВидыРозничныхПродаж.Д_Взвешивание) И (ВыручкаПредъявленная <> 0) Тогда СтрокаДвижения = Движения.РеализацияУслуг.Добавить(); СтрокаДвижения.Период = Дата; СтрокаДвижения.Организация = Организация; СтрокаДвижения.СчетРасходов = Сч90_02_1; СтрокаДвижения.НоменклатурнаяГруппа = ВидНоменклатуры; СтрокаДвижения.Сумма = ВыручкаПредъявленная; КонецЕсли; //эц ПИА 04.06.2009 . КонецЦикла; Движения.Хозрасчетный.Записать(); КонецПроцедуры |
|||
13
Fish
23.12.11
✎
14:44
|
Код конечно жесть, особенно "Перечисления.ВидыРозничныхПродаж" :)))
Но в принципе все понятно, когда и откуда берется счет. Если не понимаешь, то кури отладчик до просветления :))) |
|||
14
zmeyako999
23.12.11
✎
14:56
|
ну млин курил невкуривается - можно в двух словах
|
|||
15
Fish
23.12.11
✎
15:04
|
Так что непонятно? Если на вопрос из (0) то счет 41 или 43 у тебя присваивается всего в двух местах:
СчетУчета = Сч41_01; СчетУчета = Сч43; строки эти находятся внутри условий. Так и разберись когда и почему эти условия выполняются. Что может быть проще? Или ты предполагаешь, что все здесь должны знать, как вы учитываете дрова или уголь и что такое "Закон.ТоннажПропускать"? :)) |
|||
16
zmeyako999
23.12.11
✎
15:06
|
а все пимерно понял
|
|||
17
zmeyako999
23.12.11
✎
15:07
|
пасиб огромное
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |