Документ на основании, как ввести новый

1. ilnur2003 07.09.11 11:10 Сейчас в теме
Доброе время суток, подскажите, в 1С не силен, но стоит задача, ввести на основании документа Поступления ТМЦ - Реализация Розница. В конфигураторе в документе Поступления ТМЦ поставил галачку нужного мне документа (РеализацияРозница) в 1С появился этот документ, но вылетает ошибка - Неверный вид документа - основания! не могу понять что еще нужно сделать, в самом модуле что-то прописать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. support 4450 07.09.11 11:33 Сейчас в теме
(1) В процедуре ВводНаОсновании() необходимо обойти все реквизиты документа основания и заполнить их в новом документе. Так же сделать цикл по строкам документа основания и заполнить табличную часть нового документа.
Посмотрите, как это делается в других документах.
2. aldo 27 07.09.11 11:17 Сейчас в теме
В документе "РеализацияРозница" переделывайте процедуру "ВводНаОсновании()".
3. Арчибальд 2708 07.09.11 11:17 Сейчас в теме
В самом модуле. И не самостоятельно, а нанять программиста.
6. support 4450 07.09.11 11:30 Сейчас в теме
(3)(5) Господа, давайте менее строго относиться к новичку. Если вам нечего сказать, то промолчите. Ответят те, кто сейчас готов это сделать.
8. Арчибальд 2708 07.09.11 12:04 Сейчас в теме
(6),(7) Там (в ТиСе) ведь все время идет обращение к глобальным процедурам заполнения/проверки. То есть еще и в глобальных править надо. Новичок убьет базу. Поэтому и совет в (3)
4. ilnur2003 07.09.11 11:22 Сейчас в теме
Можно поподробнее...
Процедура ВводНаОсновании(ДокументОснование)
Перем ОписаниеОш;

СинонимДокумента = ПредставлениеВида();
СинонимОснования = ДокументОснование.ПредставлениеВида();

Список = глПолучитьСписокВводимыхНаОсновании(ДокументОснование);
Поз = Список.НайтиЗначение(Вид());

// выполним проверку, можно ли вводить документ на основании ДокументОснование
Если Поз = 0 Тогда
// ДокументОснование не найден в списке разрешенных
Предупреждение("Документ """ + СинонимДокумента +
""" нельзя вводить на основании """ + СинонимОснования + """", 60);
СтатусВозврата(0);
Возврат;
КонецЕсли;

глЗаполнитьШапкуНаОсн(Контекст,ДокументОснование);

ДатаОплаты = глБанковскаяДата(ДатаДок, Договор.ГлубинаКредита);

Если ДокументОснование.Вид() = "ЗаявкаПокупателя" Тогда
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.Прочее
Иначе
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.ОтчетПоПродажам;
КонецЕсли;

СуммаВклНДС = 1;
СуммаВклНП = 1;
УчитыватьНДС = 1;
УчитыватьНП = 1;
УчитыватьЕНВД = 0;

ПриИзмененииСклада(); // если склад облагается ЕНВД, то проставим флаг в документе

Если ЗаполнениеПоДокументуОснованию(ОписаниеОш) = 0 Тогда
Сообщить(ОписаниеОш);
СтатусВозврата(0);
КонецЕсли;

СтарыйСклад = Склад;
СтарыйКонтрагент = Контрагент;
СтарыйДоговор = Договор;

КонецПроцедуры // ВводНаОсновании()
5. platon_ 10 07.09.11 11:24 Сейчас в теме
(4) Поподробней вам уже подсказали. нанять программиста разово.
так будет надёжней и быстрее.
9. Arienkom 07.09.11 13:13 Сейчас в теме
Как вариант поставить OpenConf (телепат)
в процедурке ВводНаОсновании
написать код типа
док = СоздатьОбъект("РеализацияРозница");
потом написать док.НовыйДокумент() (как то так :) ) телепат предложит заполнение структуры документа выбрать автозаполнение.
Телепат опишет все реквизиты вместе с обходом строк таблицы. ну а дальше прямое переприсваивание реквизитов которые совпадают в поступлении и в реализации и проверка как оно работает, с последущей отладкой того что не заполняется.
или как вариант если телепат воткнуть нет умения. просто открываем реквизиты реализации розница
и каждый реквизит в прямую присваиваем. Юзать глобальные процедуры и тем более что то там менять крайне не рекомендуется :)
И сразу походу вопрос возникает, а при вводе на основании продажные цены откуда брать будем ? После ввода на основании руками ставить ?
10. tdr1225 37 08.09.11 08:31 Сейчас в теме
(9)
Конечно, установка телепата - плевое дело.
Зато новичок не убьет базу, он убьет себя.
11. sk_acc 5 10.09.11 13:15 Сейчас в теме
а можно просто скопировать поступление в реализацию из журнала
12. orexov 50 26.09.11 14:14 Сейчас в теме
в общем журнале попробуйте в действиях пункт "Скопировать В" по моему эти документы копировались между собой
13. Shrek2015 22.11.11 16:39 Сейчас в теме
насколько помню реализацию розница работает при поступлении в розницу.
задействуются одинаковые розничные склады. если же сделать поступление на оптовый, не удастся продать с розничного.
14. ibazh 24.11.11 13:54 Сейчас в теме
"ВводНаОсновании()" + поставить галку для доступности ввода
15. hellf 36 24.11.11 16:04 Сейчас в теме
В документе РеализацияРозница нужно поправить функцию ЗаполнениеПоДокументуОснованию()
Там указывается для каких документов -оснований какая функция заполнения по документу основанию будет вызываться. И скорее всего придется это заполнение писать самостоятельно. так что лучше все таки наймите специалиста.
16. demon000 3 27.11.11 01:50 Сейчас в теме
процедура ВводНаОсновании(ДокументОснование)
Перем ОписаниеОш;

СинонимДокумента = ПредставлениеВида();
СинонимОснования = ДокументОснование.ПредставлениеВида();

Список = глПолучитьСписокВводимыхНаОсновании(ДокументОснование);
Поз = Список.НайтиЗначение(Вид());

// выполним проверку, можно ли вводить документ на основании ДокументОснование
Если Поз = 0 Тогда
// ДокументОснование не найден в списке разрешенных
Предупреждение("Документ """ + СинонимДокумента +
""" нельзя вводить на основании """ + СинонимОснования + """", 60);
СтатусВозврата(0);
Возврат;
КонецЕсли;

глЗаполнитьШапкуНаОсн(Контекст,ДокументОснование);

ДатаОплаты = глБанковскаяДата(ДатаДок, Договор.ГлубинаКредита);

Если ДокументОснование.Вид() = "ЗаявкаПокупателя" Тогда
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.Прочее
Иначе
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.ОтчетПоПродажам;
КонецЕсли;

СуммаВклНДС = 1;
СуммаВклНП = 1;
УчитыватьНДС = 1;
УчитыватьНП = 1;
УчитыватьЕНВД = 0;

ПриИзмененииСклада(); // если склад облагается ЕНВД, то проставим флаг в документе

Если ЗаполнениеПоДокументуОснованию(ОписаниеОш) = 0 Тогда
Сообщить(ОписаниеОш);
СтатусВозврата(0);
КонецЕсли;

СтарыйСклад = Склад;
СтарыйКонтрагент = Контрагент;
СтарыйДоговор = Договор;

КонецПроцедуры // ВводНаОсновании()



не увидел проццыкла по строкам докумеента а только заполнение шапки
17. narman-nv 27.11.11 02:15 Сейчас в теме
Процедура ВводНаОсновании(ДокументОснование)
Перем ОписаниеОш;

СинонимДокумента = ПредставлениеВида();
СинонимОснования = ДокументОснование.ПредставлениеВида();

Список = глПолучитьСписокВводимыхНаОсновании(ДокументОснование);
Поз = Список.НайтиЗначение(Вид());

// выполним проверку, можно ли вводить документ на основании ДокументОснование
Если Поз = 0 Тогда
// ДокументОснование не найден в списке разрешенных
Предупреждение("Документ """ + СинонимДокумента +
""" нельзя вводить на основании """ + СинонимОснования + """", 60);
СтатусВозврата(0);
Возврат;
КонецЕсли;

глЗаполнитьШапкуНаОсн(Контекст,ДокументОснование);

ДатаОплаты = глБанковскаяДата(ДатаДок, Договор.ГлубинаКредита);

Если ДокументОснование.Вид() = "ЗаявкаПокупателя" Тогда
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.Прочее
Иначе
ВидОперации = Перечисление.ВидыОперацийРеализацияРозница.ОтчетПоПродажам;
КонецЕсли;

СуммаВклНДС = 1;
СуммаВклНП = 1;
УчитыватьНДС = 1;
УчитыватьНП = 1;
УчитыватьЕНВД = 0;

ПриИзмененииСклада(); // если склад облагается ЕНВД, то проставим флаг в документе

Если ЗаполнениеПоДокументуОснованию(ОписаниеОш) = 0 Тогда
Сообщить(ОписаниеОш);
СтатусВозврата(0);
КонецЕсли;

СтарыйСклад = Склад;
СтарыйКонтрагент = Контрагент;
СтарыйДоговор = Договор;

КонецПроцедуры // ВводНаОсновании()

нужно добавить обработку строк таблицы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот