помогите с Решением

1. demon000 3 22.06.11 13:38 Сейчас в теме
модуль документа счет[1C-CODE]//==================================
Процедура НоваяГарантийнаянакладная()
Док = СоздатьОбъект("Документ.ГарантийнаяНакладная");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
глУстановитьНомерДокумента(Док);
Док.Контрагент = Контрагент;
Док.ВидТорговли = ВидТорговли;
Док.ВидНДС = глВосстановитьЗначение(,"БазНДС");
Док.Валюта = Гривня;
Док.Курс = Док.Валюта.Курс.Получить(Док.ДатаДок);
Док.Автор = Пользователь;
Док.МестоХранения= Контрагент.Склад;
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент(),"ЗаполнитьОстаткиИзСчета");
КонецПроцедуры

//================================
Процедура Гарантийнаянакладная()
Если МестоХранения=Контрагент.Склад Тогда
Если вопрос ("Есть что-то по гарантии?","Да+Нет") = "Да"Тогда
НоваяГарантийнаянакладная();
иначе
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// ===============================
Функция ПроверкаСтроки()
глВсеВыбрано = 1;
глВыбранЛи(ТМЦ,"ТМЦ",НомерСтроки);
Если ТМЦ.Вид()="НеоборотныеАктивы" Тогда
Если Лев(ТМЦ.Счет,2)="10" Тогда
Если Кво <> 1 Тогда
глКомментарий("В строке "+НомерСтроки+" для основного средства "+ТМЦ+" установлено количество, отличное от 1!",1,,"!");
глВсеВыбрано = 0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат глВсеВыбрано;
КонецФункции

// ===============================
Процедура ОбработкаПроведения()
глКомментарий("Начало",2,Контекст);

Если ПроверкаШапки() = 0 Тогда
глНеПроводить(Контекст);
Возврат;
КонецЕсли;
ГарантийнаяНакладная();
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если ПроверкаСтроки() = 0 Тогда
глНеПроводить(Контекст);
Возврат;
КонецЕсли;
КонецЦикла;
глКомментарий("Окончание",2,Контекст);
КонецПроцедуры
/CODE]

форма-докумен.Гарантийная накладная[1C-CODE]Процедура ПриОткрытии()
Если ПустоеЗначение(Форма.Параметр)=0 Тогда
Если ТипЗначенияСтр(Форма.Параметр)="Строка" Тогда
Если ВРег(Форма.Параметр)="ЗаполнитьОстаткиИзСчета" Тогда
ЗаполнитьОстатки(1);
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;

глПроверкаДатыДок(Контекст,"Открытие");
ПриЗаписиПерепроводить(1);

Форма.ДатаДок.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("Основной","Основные");
Форма.Закладки.ДобавитьЗначение("Дополнительный","Дополнительно");
Форма.ИспользоватьСлой("Общий,Основной",2);

Если Константа.ПоказыватьОстаткиТМЦ = Нет Тогда
Форма.тОстаток.Видимость(0);
КонецЕсли;

Ит.ИспользоватьРазделительУчета(Фирма);
глУстановитьПериодБухИт(Ит,ДатаДок);
КонецПроцедуры
//=================================================
Процедура ЗаполнитьОстатки(ЗаполнитьОстаткиИзСчета=0)
Перем ИтОстаток;
Если МестоХранения.Выбран()<>1 Тогда
Предупреждение("А, склад, выбирать не надо???");
Возврат;
КонецЕсли;
Если КоличествоСтрок() > 0 Тогда
Рез = Вопрос("Удалить строки?","Да+Нет+Отмена");
Если Рез ="Да" Тогда
УдалитьСтроки();
ИначеЕсли Рез = "Отмена" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ИтОстаток = СоздатьОбъект("БухгалтерскиеИтоги");
ИтОстаток.ИспользоватьРазделительУчета(Фирма);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,2);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,,1);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.Партии,,1);

СчОстатков = "281";

ИтОстаток.Опции(0,0);
ИтОстаток.ВключатьСубсчета(-1);
// определим дату
Дат = ДатаДок+1;
Если Выбран() = 1 Тогда
Дат = ТекущийДокумент();
КонецЕсли;
ИтОстаток.ВыполнитьЗапрос(Дат,,СчОстатков,,,,,"СК");
ИтОстаток.ВыбратьСубконто(1);
Если ИтОстаток.ПолучитьСубконто(1,,МестоХранения)=1 Тогда
ИтОстаток.ВыбратьСубконто(2);
Пока ИтОстаток.ПолучитьСубконто(2)=1 Цикл
ИтОстаток.ВыбратьСчета();
Пока ИтОстаток.ПолучитьСчет()=1 Цикл
НоваяСтрока();
ТМЦ = ИтОстаток.Субконто(2);
глПолучитьПартиюПоУмолчанию(Партия,ТМЦ);
глУстановкаБазЕд(Контекст,ТМЦ);
Кво = ИтОстаток.СНД("К");
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры /CODE]
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
17. demon000 3 23.06.11 12:40 Сейчас в теме
Процедура ЗаполнитьОстатки()
Перем ИтОстаток;
Если МестоХранения.Выбран()<>1 Тогда
Предупреждение("А, склад, выбирать не надо???");
Возврат;
КонецЕсли;
Если КоличествоСтрок() > 0 Тогда
Рез = Вопрос("Удалить строки?","Да+Нет+Отмена");
Если Рез ="Да" Тогда
УдалитьСтроки();
ИначеЕсли Рез = "Отмена" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ИтОстаток = СоздатьОбъект("БухгалтерскиеИтоги");
ИтОстаток.ИспользоватьРазделительУчета(Фирма);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,2);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,,1);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.Партии,,1);
СчОстатков = "281";
ИтОстаток.Опции(0,0);
ИтОстаток.ВключатьСубсчета(-1);
// определим дату
Дат = ДатаДок+1;
ИтОстаток.ВыполнитьЗапрос(Дат,,СчОстатков,,,,,"СК");
ИтОстаток.ВыбратьСубконто(1);
Если ИтОстаток.ПолучитьСубконто(1,,МестоХранения)=1 Тогда
ИтОстаток.ВыбратьСубконто(2);
Пока ИтОстаток.ПолучитьСубконто(2)=1 Цикл
ИтОстаток.ВыбратьСчета();
Пока ИтОстаток.ПолучитьСчет()=1 Цикл
НоваяСтрока();
ТМЦ = ИтОстаток.Субконто(2);
глПолучитьПартиюПоУмолчанию(Партия,ТМЦ);
глУстановкаБазЕд(Контекст,ТМЦ);
Кво = ИтОстаток.СНД("К");
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
2. Altair777 647 22.06.11 14:01 Сейчас в теме
21. demon000 3 30.06.11 09:26 Сейчас в теме
разобрался
Пока ИтОстаток.ПолучитьСчет()=1 Цикл
если итОстаток.Субконто(2)=тмц. видтмц(перечисление.видтмц.Возврат)тогда
НоваяСтрока();
ТМЦ = ИтОстаток.Субконто(2);
глПолучитьПартиюПоУмолчанию(Партия,ТМЦ);
глУстановкаБазЕд(Контекст,ТМЦ);
Кво = ИтОстаток.СНД("К");
конецесли;
КонецЦикла;
3. demon000 3 22.06.11 14:32 Сейчас в теме
не срабативает процедура заполнить при откритии гарантийнойНакладной!
6. Altair777 647 22.06.11 16:46 Сейчас в теме
(3) что значит не срабатывает? она вообще выполняется?
demon000; +1 Ответить
4. demon000 3 22.06.11 15:13 Сейчас в теме
Процедура ЗаполнитьОстатки(ЗаполнитьОстаткиИзСчета=0) //не работает привводе со счета
5. demon000 3 22.06.11 16:05 Сейчас в теме
подскажите где ошибка!!!???
7. demon000 3 22.06.11 16:50 Сейчас в теме
Altair777, с гарантийнойнакладной =да
8. demon000 3 22.06.11 16:51 Сейчас в теме
просто открывается форма ГарантийнаяНакладная
9. demon000 3 22.06.11 16:53 Сейчас в теме
а процедура заполнитьОстатки(ЗаполнитьОстаткиИзСчета=0)невиполняеться

просмотрел все по идее долчно работать !?
10. Gibson_USA_1974 22.06.11 17:45 Сейчас в теме
11. MaxDavid 127 22.06.11 20:56 Сейчас в теме
ОткрытьФорму(Док.ТекущийДокумент(),"ЗаполнитьОстаткиИзСчета");

Если ВРег(Форма.Параметр)="ЗаполнитьОстаткиИзСчета" Тогда

ВРег явно лишний.
12. demon000 3 23.06.11 10:14 Сейчас в теме
без ВРег форму вобще не открывает
15. Altair777 647 23.06.11 12:07 Сейчас в теме
(12) как-то не верится, что с ВРЕГ она открывается

речь идет об этом
demon000 пишет:
Если ВРег(Форма.Параметр)="ЗаполнитьОстаткиИзСчета" Тогда
ЗаполнитьОстатки(1);


ведь ВРег("ЗаполнитьОстаткиИзСчета") вернет "ЗАПОЛНИТЬОСТАТКИИЗСЧЕТА", а не "ЗаполнитьОстаткиИзСчета"
13. demon000 3 23.06.11 11:31 Сейчас в теме
Парам = Форма.Параметр;
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Если ПустоеЗначение(Парам.Получить("Команда"))=1 Тогда
Сообщить("В форму документа "+Вид()+" передан неверный параметр!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
Если Парам.Получить("Команда") = "Заполнить" Тогда
Заполнить(1);
СтатусВозврата(0);Возврат;
Иначе
Сообщить("В форму документа "+Вид()+" передана неверная команда "+Парам.Получить("Команда")+"!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
КонецЕсли;
14. alexk-is 6546 23.06.11 11:33 Сейчас в теме
(13) Это значит, что уже всё работает?
16. demon000 3 23.06.11 12:36 Сейчас в теме
решил так

в документ

Процедура ПриОткрытии()

Если форма.Параметр=1 тогда
Заполнить();
КонецЕсли;

в управляющий документ

Процедура НоваяГарантийнаянакладная()
Док = СоздатьОбъект("Документ.ГарантийнаяНакладная");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
глУстановитьНомерДокумента(Док);
Док.Контрагент = Контрагент;
Док.ВидТорговли = ВидТорговли;
Док.ВидНДС = глВосстановитьЗначение(,"БазНДС");
Док.Валюта = Гривня;
Док.Курс = Док.Валюта.Курс.Получить(Док.ДатаДок);
Док.Автор = Пользователь;
Док.МестоХранения= Контрагент.Склад;
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент(),1);
КонецПроцедуры
18. demon000 3 23.06.11 12:42 Сейчас в теме
помогите заполнить по реквизиту возврат
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,Возврат,1);и тд....???
19. demon000 3 24.06.11 09:16 Сейчас в теме
как заполнить тмц с отбором по реквизиту
20. kurator 27.06.11 04:59 Сейчас в теме
Услуги по 1с и web программированию, а также комплекс услуг по созданию сайтов http://ivkonbt.by/
22. Demidov 18.10.11 09:21 Сейчас в теме
Вот славно что нашлось решение
Оставьте свое сообщение

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