Добрый день друзья!
в 1с 7.7 выдает такую ошибку бьюсь головой но не как решить не могу кто поможет?
в 1с 7.7 выдает такую ошибку бьюсь головой но не как решить не могу кто поможет?
//Операция.Дебет.Номенклатура = Товар;
//{Документ.ПоступлениеТоваров.Модуль Документа(74)}: Для счета вид субконто Номенклатура неопределен!
//Проверил в плане счетов счет на который ссылается в нем субконто1 указан номенклатура
//Не могу понять в чем проблема!
//Вот часть кода на которую дает ошибку:
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Поступили товары";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = СчетУчета;
Если СчетУчета = СчХХХХХХХ Тогда
Операция.Дебет.Номенклатура = Товар;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Иначе
Операция.Дебет.Номенклатура = Товар;////// - вот на это ссылается!///
Операция.Дебет.МестаХранения = МестоХранения;
Операция.Кредит.Счет = СчХХХХХХХ_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
КонецЕсли;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) l_user, вот весь код!
Перем Сч631851_00, Сч621847_00, Сч621954_06;
//__________________________________________________________ ___________________
Процедура ЗачестьАванс(ЗачетАванса, ДоговорАванса)
Если ЗачетАванса > 0 Тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Зачтен аванс";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = Сч631851_00;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Операция.Кредит.Счет = Сч621847_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = ДоговорАванса;
Операция.Сумма = ЗачетАванса;
КонецЕсли;
КонецПроцедуры // ЗачестьАванс
//__________________________________________________________ ___________________
Процедура ОбработкаПроведения()
глКомментарийПроведения("Начало", Контекст);
Сч612342_01 = СчетПоКоду("612342.01");
Сч612342_02 = СчетПоКоду("612342.02");
Сч612342_03 = СчетПоКоду("612342.03");
Сч612342_04 = СчетПоКоду("612342.04");
Сч631851_00 = СчетПоКоду("631851.00");
Сч621847_00 = СчетПоКоду("621847.00");
Сч612342 = СчетПоКоду("612342");
Сч621954_06 = СчетПоКоду("621954.06");
СуммаПоставки = Итог("Всего");
СуммаНДС_621954 = Итог("НДС");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Товар Тогда
глОшибкаПроведения(Контекст, "Номенклатурная единица "+Товар+" не является товаром.");
СтатусВозврата(0); Возврат;
КонецЕсли;
Если Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда
СчетУчета = Сч612342;
УчетнаяСтоимость = Всего;
СуммаНДС_621954 = СуммаНДС_621954 - НДС;
СуммаПоставки = СуммаПоставки - Всего;
ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
СчетУчета = Сч612342_03;
УчетнаяСтоимость = Всего - НДС;
ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.ПокупныеИзделия Тогда
СчетУчета = Сч612342_04;
УчетнаяСтоимость = Всего - НДС;
Иначе //Если Товар.ТипТовара = Перечисление.ТипыТоваров.Собственный Тогда
Если ВидПоступления = 2 Тогда //розница
СчетУчета = Сч612342_02;
Если ДатаГод(ДатаДок) < 2000 Тогда
УчетнаяСтоимость = Всего;
СуммаНДС_621954 = СуммаНДС_621954 - НДС;
Иначе
УчетнаяСтоимость = Всего - НДС;
КонецЕсли;
Иначе //Если ВидПоступления = 1 Тогда опт
СчетУчета = Сч612342_01;
УчетнаяСтоимость = Всего - НДС;
КонецЕсли;
КонецЕсли;
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Поступили товары";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = СчетУчета;
Если СчетУчета = Сч612342 Тогда
Операция.Дебет.Номенклатура = Товар;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Иначе
Операция.Дебет.Номенклатура = Товар;
Операция.Дебет.МестаХранения = МестоХранения;
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
КонецЕсли;
Операция.Количество = Количество;
Операция.Сумма = УчетнаяСтоимость;
КонецЦикла;
Если СуммаНДС_621954 > 0 Тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Выделен НДС";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = Сч621954_06;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
Операция.Сумма = СуммаНДС_621954;
КонецЕсли;
Если ЗачитыватьАванс <> 1 Тогда //Зачитывать аванс
СписокДоговоров = СоздатьОбъект("СписокЗначений");
СписокДоговоров.ДобавитьЗначение(Договор);
БезДоговора = глДоговор(глИмяДоговораДляПлатежейБезДоговора, Контрагент);
Если ЗачитыватьАванс = 0 Тогда //Зачитывать аванс без договора
СписокДоговоров.ДобавитьЗначение(БезДоговора);
КонецЕсли;
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
БухИт.ИспользоватьСубконто(ВидыСубконто.Основание, СписокДоговоров, 2);
БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),"621954.06",,,,,"С");
Если БухИт.ПолучитьСубконто(ВидыСубконто.Основание,, БезДоговора) = 1 Тогда
АвансБезДоговора = БухИт.СКД("С");
Иначе
АвансБезДоговора = 0;
КонецЕсли;
Если БухИт.ПолучитьСубконто(ВидыСубконто.Основание,, Договор) = 1 Тогда
АвансПоДоговору = БухИт.СКД("С");
Иначе
АвансПоДоговору = 0;
КонецЕсли;
СуммаПоступления = Итог("Всего");
ЗачетАвансаПоДоговору = Мин(АвансПоДоговору, СуммаПоступления);
ЗачетАвансаБезДоговора = Мин(АвансБезДоговора, СуммаПоступления - ЗачетАвансаПоДоговору);
ЗачетАванса = ЗачетАвансаПоДоговору + ЗачетАвансаБезДоговора;
ЗачестьАванс(ЗачетАвансаПоДоговору, Договор);
ЗачестьАванс(ЗачетАвансаБезДоговора, БезДоговора);
глКомментарийПроведения("=> Зачет аванса");
глКомментарийПроведения(СимволТабуляции+"поступило на сумму: "+СуммаПоступления+", зачтен аванс в размере: "+ЗачетАванса);
глКомментарийПроведения(СимволТабуляции+"- определен аванс по договору "+Договор+" в сумме: "+АвансПоДоговору+", зачтен аванс в размере: "+ЗачетАвансаПоДоговору);
Если ЗачитыватьАванс = 0 Тогда
глКомментарийПроведения(СимволТабуляции+"- определен аванс без указания договора в сумме: "+АвансБезДоговора+", зачтен аванс в размере: "+ЗачетАвансаБезДоговора);
Иначе
глКомментарийПроведения(СимволТабуляции+"- аванс без указания договора не учтен");
КонецЕсли;
КонецЕсли;
Операция.Записать();
глКомментарийПроведения("Окончание", Контекст);
КонецПроцедуры
Показать
(7) Лучше было это не показывать - что мы, г...кода не видели?
Получается, что в случае СчетУчета = Сч612342 у операции не будет счета и аналитики по кредиту! К тому же, если я правильно понял, то Сч612342 - это группа, и пытаться делать по нему проводки более чем глупо.
Когда приведете в порядок логику кода, попробуйте (2) вместо "Операция.Дебет.Номенклатура = Товар", и далее по аналогии.
Если СчетУчета = Сч612342 Тогда
Операция.Дебет.Номенклатура = Товар;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Иначе
Операция.Дебет.Номенклатура = Товар;
Операция.Дебет.МестаХранения = МестоХранения;
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
КонецЕсли;
ПоказатьПолучается, что в случае СчетУчета = Сч612342 у операции не будет счета и аналитики по кредиту! К тому же, если я правильно понял, то Сч612342 - это группа, и пытаться делать по нему проводки более чем глупо.
Когда приведете в порядок логику кода, попробуйте (2) вместо "Операция.Дебет.Номенклатура = Товар", и далее по аналогии.
To Cooler:
Поддерживаю, но как бы Вы поняли, что идет речь о группе из плана счетов, если бы не был приведен этот код?
То Antimyslitel:
Может выложите скриншот экрана с планом счетов, где видно счета группы 612342 вместе с их аналитикой (субконто)?
Как поймать ошибку. Я делаю
- или через "Сообщить(""+СчетУчета.Код+" - "+счетУчета.Наименование)"
- или через "Отладчик": поставить точку остановки с строке №74 и через табло посмотреть какой счет учета используется, а потом посмотреть в плане счетов аналитику (субконто) данного счета.
Поддерживаю, но как бы Вы поняли, что идет речь о группе из плана счетов, если бы не был приведен этот код?
То Antimyslitel:
Может выложите скриншот экрана с планом счетов, где видно счета группы 612342 вместе с их аналитикой (субконто)?
Как поймать ошибку. Я делаю
- или через "Сообщить(""+СчетУчета.Код+" - "+счетУчета.Наименование)"
- или через "Отладчик": поставить точку остановки с строке №74 и через табло посмотреть какой счет учета используется, а потом посмотреть в плане счетов аналитику (субконто) данного счета.
Ни то ни другое не получается!
Никак не могу понять где и как посмотреть какой СчетУчета используется!
ПРоверил план счетов на том счете на который он ссылается есть субконто1 = Номенклатура субконто2=МестаХранения
Никак не могу понять где и как посмотреть какой СчетУчета используется!
ПРоверил план счетов на том счете на который он ссылается есть субконто1 = Номенклатура субконто2=МестаХранения
(10) Antimyslitel, Вы бы проверили отладчиком..
Вот именно что у счета есть субконто.. вы его не пишите...
Вы пробовали писать так:
Как сказал (2) eshtrey, ???
И посмотрите отладчиком, чему равно значение Операция.Дебет.Счет, Операция.Дебет и Операция.Дебет.субконто
Операция.Дебет.Номенклатура = Товар;
ПРоверил план счетов на том счете на который он ссылается есть субконто1 = Номенклатура субконто2=МестаХранения
Вот именно что у счета есть субконто.. вы его не пишите...
Вы пробовали писать так:
Операция.Дебет.Субконто(1, Товар)
Как сказал (2) eshtrey, ???
И посмотрите отладчиком, чему равно значение Операция.Дебет.Счет, Операция.Дебет и Операция.Дебет.субконто
To Antimyslitel:
Вам уже Cooler написал, что использование в проводках ссылки на группу из плана счетов некорректно. Вы проверили чему у Вас равняется значение переменной "СчетУчета"?
Не получается использовать "Отладчик"- вставьте после
строчку .
Вам уже Cooler написал, что использование в проводках ссылки на группу из плана счетов некорректно. Вы проверили чему у Вас равняется значение переменной "СчетУчета"?
Не получается использовать "Отладчик"- вставьте после
Операция.Дебет.Счет = СчетУчета;
строчку
Сообщить("Счета учета = "+СчетУчета.Код);
(18) Судя по (15):
там все-таки остались какие-то ошметки от другого плана счетов. Поэтому последний вопль автора:
напомнил мне старый афоризм: "Сложность программы растет до тех пор, пока не превысит способности программиста".
Как раз этот случай, надо в консерватории что-то подправлять.
Выбраны счета из разных планов счетов!
там все-таки остались какие-то ошметки от другого плана счетов. Поэтому последний вопль автора:
он поменялся в системе многое в нем поменял, нумерация, обозначение и все такое!
напомнил мне старый афоризм: "Сложность программы растет до тех пор, пока не превысит способности программиста".
Как раз этот случай, надо в консерватории что-то подправлять.
(19) Cooler, Непонимаю..
Неужели нельзя присвоить тип: Плансчетов.Хозрасчетный.ИмяСчета
А там ещё сначала в коде номер счета.. потом счет по коду.. мама.. спасите - помогите(((
Вопрос ещё здесь
//А здесь счет.. субсчета у него есть?
//Здесь субсчет)
Короче я вообще не понимаю, что происходит...
Операция.Дебет.Счет = Сч621954_06;
Неужели нельзя присвоить тип: Плансчетов.Хозрасчетный.ИмяСчета
А там ещё сначала в коде номер счета.. потом счет по коду.. мама.. спасите - помогите(((
Вопрос ещё здесь
Сч612342 = СчетПоКоду("612342");
Сч621954_06 = СчетПоКоду("621954.06");
Короче я вообще не понимаю, что происходит...
(21) Bukaska,
Поймитиже старый программист практически сделал все, но не доделал блок по поступлению товаров и зарплате в конфе
Теперь меня попросили подправить, а я не бум ногой там! вот поэтому и прошу о помощи!
мне бы код сам написать где что должно стоять!
Поймитиже старый программист практически сделал все, но не доделал блок по поступлению товаров и зарплате в конфе
Теперь меня попросили подправить, а я не бум ногой там! вот поэтому и прошу о помощи!
мне бы код сам написать где что должно стоять!
(22) Antimyslitel,
вы право шутите, почему неквалифицированный специалист решает задачи и почему квалифицированные программисты на форуме будут бесплатно писать код? неужто мы, коллеги, тратили время и деньги на обучение ради альтруистических идей? )))
Теперь меня попросили подправить, а я не бум ногой там! вот поэтому и прошу о помощи!
мне бы код сам написать где что должно стоять!
мне бы код сам написать где что должно стоять!
вы право шутите, почему неквалифицированный специалист решает задачи и почему квалифицированные программисты на форуме будут бесплатно писать код? неужто мы, коллеги, тратили время и деньги на обучение ради альтруистических идей? )))
(62) jigourt, Дорогой друг, товарисчь Если у тебя когда нить в жизни появится такая ситуация что тебе надо будет связать сетью несколько офисов и т.д. и т.п. или хотя бы тел.станцию на эластике настроить или у тебя возникнет проблема с сервачком поверь я бы тебе помог, и дал бы более детальную информацию что да как сделать!
Я учился по Cisco, microsoft, apache, oracle но вот 1с как то не то думал! оказывается придется лететь в другую страну что бы и этому научится))) но пока поеду поучится мне надо что бы хоть что то да как то работало!
Также теперь методом тыка разобрался!
Пишу решение проблемы:
Если СчетУчета <> Сч612342_01 Тогда - и тут вместо знака равно поставил больше меньше
Я учился по Cisco, microsoft, apache, oracle но вот 1с как то не то думал! оказывается придется лететь в другую страну что бы и этому научится))) но пока поеду поучится мне надо что бы хоть что то да как то работало!
Также теперь методом тыка разобрался!
Пишу решение проблемы:
Если СчетУчета <> Сч612342_01 Тогда - и тут вместо знака равно поставил больше меньше
Операция.Дебет.Субконто(1, Товар);// - эту строчку удалил и все завелось, всем спасибо за помощь! в особенности Кулеру и АйЮзеру
Операция.Дебет.Субконто(3, Контрагент);
Операция.Дебет.Основание = Договор;
Иначе
Операция.Дебет.Субконто(1, Товар);
Операция.Дебет.Субконто(2, МестоХранения);
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
Показать
(64) Cooler, Проводка сформировалась именно так как она нужна была! Помимо этого сейчас бухгалтер поблагодарила))) и сказала что проводки нормально сформированы! спасибо! взял книжку в гугле-великом и почитал немного! понял что есть такая комбинация как шифт+Ф9
(63) Antimyslitel,
дак и я бы помог с 1С и я думаю на форуме уже наберется достаточное количество человек, которым я помог, но выполнять работу, а именно
это просто то за что программисты свой хлеб кушают, а именно код пишут... а уж по теме вашей проблемы вам детальной информации тут дали достаточно, за сим прошу прощения за такой оффтоп и выражение мнения... и хочу вас заверить, если бы подсказки остальных вам не помогли бы, я бы-таки углубился бы в вашу проблему и помог даже несмотря на свою позицию...
поверь я бы тебе помог
дак и я бы помог с 1С и я думаю на форуме уже наберется достаточное количество человек, которым я помог, но выполнять работу, а именно
мне бы код сам написать где что должно стоять!
это просто то за что программисты свой хлеб кушают, а именно код пишут... а уж по теме вашей проблемы вам детальной информации тут дали достаточно, за сим прошу прощения за такой оффтоп и выражение мнения... и хочу вас заверить, если бы подсказки остальных вам не помогли бы, я бы-таки углубился бы в вашу проблему и помог даже несмотря на свою позицию...
(18) l_user,
Понял поставил
теперь при проведении дает такое:
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
=> Зачет аванса
Операция.Записать();
Документ.ПоступлениеТоваров.МодульДокумента(141): Выбраны счета из разных планов счетов(проводка 1)
Понял поставил
теперь при проведении дает такое:
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
Счет учета =
=> Зачет аванса
Операция.Записать();
Документ.ПоступлениеТоваров.МодульДокумента(141): Выбраны счета из разных планов счетов(проводка 1)
(26) Antimyslitel, ну видите же, что СчетУчета выдает пустое значение. Разумеется, сложно требовать от пустого значения наличия субконто ))
Скорее всего, у вас действительно два плана счетов. Впрочем, не исключаю, что после кривых исправлений слетели нужные счета основного плана.
Скорее всего, у вас действительно два плана счетов. Впрочем, не исключаю, что после кривых исправлений слетели нужные счета основного плана.
(26) Antimyslitel,
Сч612342_01 = СчетПоКоду("612342.01");
Сч612342_02 = СчетПоКоду("612342.02");
Сч612342_03 = СчетПоКоду("612342.03");
Сч612342_04 = СчетПоКоду("612342.04");
Сч631851_00 = СчетПоКоду("631851.00");
Сч621847_00 = СчетПоКоду("621847.00");
Сч612342 = СчетПоКоду("612342");//Посмотрите что за счет.. и есть -лит у него субсчета..
Сч621954_06 = СчетПоКоду("621954.06");
Так как проводки должны проводиться по конкретным субсчетам и субконто.. а не просто по счету.
Сч612342_01 = СчетПоКоду("612342.01");
Сч612342_02 = СчетПоКоду("612342.02");
Сч612342_03 = СчетПоКоду("612342.03");
Сч612342_04 = СчетПоКоду("612342.04");
Сч631851_00 = СчетПоКоду("631851.00");
Сч621847_00 = СчетПоКоду("621847.00");
Сч612342 = СчетПоКоду("612342");//Посмотрите что за счет.. и есть -лит у него субсчета..
Сч621954_06 = СчетПоКоду("621954.06");
Так как проводки должны проводиться по конкретным субсчетам и субконто.. а не просто по счету.
(33) Bukaska,
Попробывал везде поменял!
Теперь вот весь код как и в конце какая ошибка!
ОШИБКА: Операция.Дебет.Основание = Договор;
{Документ.ПоступлениеТоваров.Модуль Документа(73)}: Для счета вид субконто Основание неопределен!
Уже задолбался просто
Попробывал везде поменял!
Теперь вот весь код как и в конце какая ошибка!
Перем Сч631851_00, Сч621847_00, Сч621954_06;
//__________________________________________________________ ___________________
Процедура ЗачестьАванс(ЗачетАванса, ДоговорАванса)
Если ЗачетАванса > 0 Тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Зачтен аванс";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = Сч631851_00;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Операция.Кредит.Счет = Сч621847_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = ДоговорАванса;
Операция.Сумма = ЗачетАванса;
КонецЕсли;
КонецПроцедуры // ЗачестьАванс
//__________________________________________________________ ___________________
Процедура ОбработкаПроведения()
глКомментарийПроведения("Начало", Контекст);
Сч612342_01 = СчетПоКоду("612342.01");
Сч612342_02 = СчетПоКоду("612342.02");
Сч612342_03 = СчетПоКоду("612342.03");
Сч612342_04 = СчетПоКоду("612342.04");
Сч631851_00 = СчетПоКоду("631851.00");
Сч621847_00 = СчетПоКоду("621847.00");
Сч621954_06 = СчетПоКоду("621954.06");
СуммаПоставки = Итог("Всего");
СуммаНДС_621954 = Итог("НДС");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Товар Тогда
глОшибкаПроведения(Контекст, "Номенклатурная единица "+Товар+" не является товаром.");
СтатусВозврата(0); Возврат;
КонецЕсли;
Если Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда
СчетУчета = Сч612342_01;
УчетнаяСтоимость = Всего;
СуммаНДС_621954 = СуммаНДС_621954 - НДС;
СуммаПоставки = СуммаПоставки - Всего;
ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
СчетУчета = Сч612342_03;
УчетнаяСтоимость = Всего - НДС;
ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.ПокупныеИзделия Тогда
СчетУчета = Сч612342_04;
УчетнаяСтоимость = Всего - НДС;
Иначе //Если Товар.ТипТовара = Перечисление.ТипыТоваров.Собственный Тогда
Если ВидПоступления = 2 Тогда //розница
СчетУчета = Сч612342_02;
Если ДатаГод(ДатаДок) < 2000 Тогда
УчетнаяСтоимость = Всего;
СуммаНДС_621954 = СуммаНДС_621954 - НДС;
Иначе
УчетнаяСтоимость = Всего - НДС;
КонецЕсли;
Иначе //Если ВидПоступления = 1 Тогда опт
СчетУчета = Сч612342_01;
УчетнаяСтоимость = Всего - НДС;
КонецЕсли;
КонецЕсли;
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Поступили товары";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = СчетУчета;
Сообщить("Счет учета = "+СчетУчета.Код);
Если СчетУчета = Сч612342_01 Тогда
Операция.Дебет.Субконто(1, Товар);
Операция.Дебет.Субконто(3, Контрагент);
Операция.Дебет.Основание = Договор;
Иначе
Операция.Дебет.Субконто(1, Товар);
Операция.Дебет.Субконто(2, МестоХранения);
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
КонецЕсли;
Операция.Количество = Количество;
Операция.Сумма = УчетнаяСтоимость;
КонецЦикла;
Если СуммаНДС_621954 > 0 Тогда
Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Выделен НДС";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = Сч621954_06;
Операция.Дебет.Контрагенты = Контрагент;
Операция.Дебет.Основание = Договор;
Операция.Кредит.Счет = Сч631851_00;
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Основание = Договор;
Операция.Сумма = СуммаНДС_621954;
КонецЕсли;
Если ЗачитыватьАванс <> 1 Тогда //Зачитывать аванс
СписокДоговоров = СоздатьОбъект("СписокЗначений");
СписокДоговоров.ДобавитьЗначение(Договор);
БезДоговора = глДоговор(глИмяДоговораДляПлатежейБезДоговора, Контрагент);
Если ЗачитыватьАванс = 0 Тогда //Зачитывать аванс без договора
СписокДоговоров.ДобавитьЗначение(БезДоговора);
КонецЕсли;
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент,2);
БухИт.ИспользоватьСубконто(ВидыСубконто.Основание, СписокДоговоров, 2);
БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),"621954.06",,,,,"С");
Если БухИт.ПолучитьСубконто(ВидыСубконто.Основание,, БезДоговора) = 1 Тогда
АвансБезДоговора = БухИт.СКД("С");
Иначе
АвансБезДоговора = 0;
КонецЕсли;
Если БухИт.ПолучитьСубконто(ВидыСубконто.Основание,, Договор) = 1 Тогда
АвансПоДоговору = БухИт.СКД("С");
Иначе
АвансПоДоговору = 0;
КонецЕсли;
СуммаПоступления = Итог("Всего");
ЗачетАвансаПоДоговору = Мин(АвансПоДоговору, СуммаПоступления);
ЗачетАвансаБезДоговора = Мин(АвансБезДоговора, СуммаПоступления - ЗачетАвансаПоДоговору);
ЗачетАванса = ЗачетАвансаПоДоговору + ЗачетАвансаБезДоговора;
ЗачестьАванс(ЗачетАвансаПоДоговору, Договор);
ЗачестьАванс(ЗачетАвансаБезДоговора, БезДоговора);
глКомментарийПроведения("=> Зачет аванса");
глКомментарийПроведения(СимволТабуляции+"поступило на сумму: "+СуммаПоступления+", зачтен аванс в размере: "+ЗачетАванса);
глКомментарийПроведения(СимволТабуляции+"- определен аванс по договору "+Договор+" в сумме: "+АвансПоДоговору+", зачтен аванс в размере: "+ЗачетАвансаПоДоговору);
Если ЗачитыватьАванс = 0 Тогда
глКомментарийПроведения(СимволТабуляции+"- определен аванс без указания договора в сумме: "+АвансБезДоговора+", зачтен аванс в размере: "+ЗачетАвансаБезДоговора);
Иначе
глКомментарийПроведения(СимволТабуляции+"- аванс без указания договора не учтен");
КонецЕсли;
КонецЕсли;
Операция.Записать();
глКомментарийПроведения("Окончание", Контекст);
КонецПроцедуры
ПоказатьОШИБКА: Операция.Дебет.Основание = Договор;
{Документ.ПоступлениеТоваров.Модуль Документа(73)}: Для счета вид субконто Основание неопределен!
Уже задолбался просто
(34) Antimyslitel,
У вас когда отладчик отработает
Наберите в отладчике: Операция.Дебет.Основание = чему равна данная переменная
У вас отладчик падает в веточке Если до оператора Иначе
У вас когда отладчик отработает
Если СчетУчета = Сч612342_01 Тогда
Операция.Дебет.Субконто(1, Товар);
Операция.Дебет.Субконто(3, Контрагент);
Наберите в отладчике: Операция.Дебет.Основание = чему равна данная переменная
У вас отладчик падает в веточке Если до оператора Иначе
Попросила главный бухгалтер!
А денег не дала? Странный бухгалтер... тем более главный, кому как ей не знать, что все имеет свою цену.
Отладчик в 7.7 есть, и табло есть, но только автора оно не спасет: как я уже писал, у него нарушена логика кода, и даже в последнем варианте (34) я не вижу никаких подвижек в этом направлении.
(46) Может, старого программиста пригласите? Или нового наймете, но программиста по 7.7, а не который "ты же компьтерщик"?
Кстати, почему старый с вами больше не работает? Я подозреваю, что как раз разругались из-за оплаты?
(51) Ну, так удаленно можно поработать. Ведь вряд ли он переехал в страну, в которой нет Интернета - чего в такой программисту делать?
Кстати, давно хотел спросить - а для какой страны ваша конфигурация?
Поэтому хотел уже предложить свои услуги, но вовремя перечитал ветку и после "не доделал блок по поступлению товаров и зарплате в конфе" желания поубавилось - если с товарами везде более-менее похоже, то зарплата и налоги другой страны - очень специфическая область, темный лес.
Представляю, чего вы там накодите! Заранее мои соболезнования.
Кстати, давно хотел спросить - а для какой страны ваша конфигурация?
пытаемся методом тыка!
Методом тыка хорошо бесплодие лечить, а программировать (даже на 1С) надо ясно понимая - что делаешь.
Поэтому хотел уже предложить свои услуги, но вовремя перечитал ветку и после "не доделал блок по поступлению товаров и зарплате в конфе" желания поубавилось - если с товарами везде более-менее похоже, то зарплата и налоги другой страны - очень специфическая область, темный лес.
Представляю, чего вы там накодите! Заранее мои соболезнования.
(57) Извиняюсь, но там непонятно кому соболезновали - может, помощникам? Они тоже заслуживают, по-моему. :-)
В-общем, классическая ветка образца: "Уважаемые спецы, подскажите, как сделать операцию аппендицита в домашних условиях? Скальпель мы уже купили!"
А тут не просто скальпель купили, а уже и резать начали. По живому. А теперь выясняется - скальпель "не такой", хирург уехал, на больницу денег нет.
В-общем, классическая ветка образца: "Уважаемые спецы, подскажите, как сделать операцию аппендицита в домашних условиях? Скальпель мы уже купили!"
А тут не просто скальпель купили, а уже и резать начали. По живому. А теперь выясняется - скальпель "не такой", хирург уехал, на больницу денег нет.
To Antimyslitel:
Я может и ошибаюсь, но если выдает сообщение:
"Счет учета = ", то это значит, что значение переменной "СчетУчета" не определено. И соответственно, ничего не присваивается в "Операция.Дебет.Счет".
Поэтому нужно "копать" в сторону почему ничего не присваивается...
Проверьте, на всякий случай:
1. В режиме "1С.Предприятие", пункты меню "Сервис-Параметры".
2. Выбрать закладку "Бухгалтерия" и убедиться, что используется именно нужный Вам план счетов.
3. Снова попробовать "провести" документ.
Я может и ошибаюсь, но если выдает сообщение:
"Счет учета = ", то это значит, что значение переменной "СчетУчета" не определено. И соответственно, ничего не присваивается в "Операция.Дебет.Счет".
Поэтому нужно "копать" в сторону почему ничего не присваивается...
Проверьте, на всякий случай:
1. В режиме "1С.Предприятие", пункты меню "Сервис-Параметры".
2. Выбрать закладку "Бухгалтерия" и убедиться, что используется именно нужный Вам план счетов.
3. Снова попробовать "провести" документ.
(44) Antimyslitel,
Тогда продолжим "мучать Отладчик"...
1. В Конфигураторе ставим курсор на строчку, которую Вы добавили по моей просьбе, то есть "Сообщить("Счет уч..".
2. Снова пункты меню: "Действия"-"Открыть в отладчике". Возможно будет ругаться на уже открытый отладчик. Не помню что пишет "1С 7.7", поэтому нужно убедиться, что "Отладчик" закрыт.
3. В отладчике убеждаемся, что курсор находится на нужной нам строчке и жмем клавишу "F9".
4. Переходим в Бухгалтерию и пытаемся провести документ.
5. Если все сделано правильно, то через какое-то время активируется окно "Отладчика" и "Бухгалтерия" остановит свою работу.
6. Снова пункты меню уже "Отладчика": "Отладка"-"Табло".
7. Внизу "Отладчика" откроется окно, в котором нужно набирать название переменных, значения которых на данном шаге выполнения программы Вам нужно знать. Знак "=" набирать не нужно.
8. Для начала проверить чему равны "Товар.ТипТовара", "ВидПоступления". Затем проверить "СчетУчета".
Ещё "глюпый вопрос", а "Тестирование и исправление" когда делали? Если соберетесь, то сначала только на копии!!!
Тогда продолжим "мучать Отладчик"...
1. В Конфигураторе ставим курсор на строчку, которую Вы добавили по моей просьбе, то есть "Сообщить("Счет уч..".
2. Снова пункты меню: "Действия"-"Открыть в отладчике". Возможно будет ругаться на уже открытый отладчик. Не помню что пишет "1С 7.7", поэтому нужно убедиться, что "Отладчик" закрыт.
3. В отладчике убеждаемся, что курсор находится на нужной нам строчке и жмем клавишу "F9".
4. Переходим в Бухгалтерию и пытаемся провести документ.
5. Если все сделано правильно, то через какое-то время активируется окно "Отладчика" и "Бухгалтерия" остановит свою работу.
6. Снова пункты меню уже "Отладчика": "Отладка"-"Табло".
7. Внизу "Отладчика" откроется окно, в котором нужно набирать название переменных, значения которых на данном шаге выполнения программы Вам нужно знать. Знак "=" набирать не нужно.
8. Для начала проверить чему равны "Товар.ТипТовара", "ВидПоступления". Затем проверить "СчетУчета".
Ещё "глюпый вопрос", а "Тестирование и исправление" когда делали? Если соберетесь, то сначала только на копии!!!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот