модуль документа счет[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]
Процедура НоваяГарантийнаянакладная()
Док = СоздатьОбъект("Документ.ГарантийнаяНакладная");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
глУстановитьНомерДокумента(Док);
Док.Контрагент = Контрагент;
Док.ВидТорговли = ВидТорговли;
Док.ВидНДС = глВосстановитьЗначение(,"БазНДС");
Док.Валюта = Гривня;
Док.Курс = Док.Валюта.Курс.Получить(Док.ДатаДок);
Док.Автор = Пользователь;
Док.МестоХранения= Контрагент.Склад;
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент(),"ЗаполнитьОстаткиИзСчета");
КонецПроцедуры
//================================
Процедура Гарантийнаянакладная()
Если МестоХранения=Контрагент.Склад Тогда
Если вопрос ("Есть что-то по гарантии?","Да+Нет") = "Да"Тогда
НоваяГарантийнаянакладная();
иначе
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// ===============================
Функция ПроверкаСтроки()
глВсеВыбрано = 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]
По теме из базы знаний
- Минусы при расчете себестоимости в УПП и особенности решения СЛАУ
- Решение некоторых задач из сборника для подготовки к экзамену 1С:Специалист-консультант по Бухгалтерии
- Аналитик – птица гордая, пока не пнешь – не полетит. Как вырастить сотрудника, готового к самостоятельному решению задач, используя план индивидуального развития
- Завал в IT-компании и как с ним бороться
- Управление проектом Руководителем проекта со стороны Заказчика
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура ЗаполнитьОстатки()
Перем ИтОстаток;
Если МестоХранения.Выбран()<>1 Тогда
Предупреждение("А, склад, выбирать не надо???");
Возврат;
КонецЕсли;
Если КоличествоСтрок() > 0 Тогда
Рез = Вопрос("Удалить строки?","Да+Нет+Отмена");
Если Рез ="Да" Тогда
УдалитьСтроки();
ИначеЕсли Рез = "Отмена" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ИтОстаток = СоздатьОбъект("БухгалтерскиеИтоги");
ИтОстаток.ИспользоватьРазделительУчета(Фирма);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,2);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,,1);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.Партии,,1);
СчОстатков = "281";
ИтОстаток.Опции(0,0);
ИтОстаток.ВключатьСубсчета(-1);
// определим дату
Дат = ДатаДок+1;
ИтОстаток.ВыполнитьЗапрос(Дат,,СчОстатков,,,,,"СК");
ИтОстаток.ВыбратьСубконто(1);
Если ИтОстаток.ПолучитьСубконто(1,,МестоХранения)=1 Тогда
ИтОстаток.ВыбратьСубконто(2);
Пока ИтОстаток.ПолучитьСубконто(2)=1 Цикл
ИтОстаток.ВыбратьСчета();
Пока ИтОстаток.ПолучитьСчет()=1 Цикл
НоваяСтрока();
ТМЦ = ИтОстаток.Субконто(2);
глПолучитьПартиюПоУмолчанию(Партия,ТМЦ);
глУстановкаБазЕд(Контекст,ТМЦ);
Кво = ИтОстаток.СНД("К");
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Перем ИтОстаток;
Если МестоХранения.Выбран()<>1 Тогда
Предупреждение("А, склад, выбирать не надо???");
Возврат;
КонецЕсли;
Если КоличествоСтрок() > 0 Тогда
Рез = Вопрос("Удалить строки?","Да+Нет+Отмена");
Если Рез ="Да" Тогда
УдалитьСтроки();
ИначеЕсли Рез = "Отмена" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ИтОстаток = СоздатьОбъект("БухгалтерскиеИтоги");
ИтОстаток.ИспользоватьРазделительУчета(Фирма);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,2);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.ТМЦ,,1);
ИтОстаток.ИспользоватьСубконто(ВидыСубконто.Партии,,1);
СчОстатков = "281";
ИтОстаток.Опции(0,0);
ИтОстаток.ВключатьСубсчета(-1);
// определим дату
Дат = ДатаДок+1;
ИтОстаток.ВыполнитьЗапрос(Дат,,СчОстатков,,,,,"СК");
ИтОстаток.ВыбратьСубконто(1);
Если ИтОстаток.ПолучитьСубконто(1,,МестоХранения)=1 Тогда
ИтОстаток.ВыбратьСубконто(2);
Пока ИтОстаток.ПолучитьСубконто(2)=1 Цикл
ИтОстаток.ВыбратьСчета();
Пока ИтОстаток.ПолучитьСчет()=1 Цикл
НоваяСтрока();
ТМЦ = ИтОстаток.Субконто(2);
глПолучитьПартиюПоУмолчанию(Партия,ТМЦ);
глУстановкаБазЕд(Контекст,ТМЦ);
Кво = ИтОстаток.СНД("К");
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
(12) как-то не верится, что с ВРЕГ она открывается
речь идет об этом
ведь ВРег("ЗаполнитьОстаткиИзСчета") вернет "ЗАПОЛНИТЬОСТАТКИИЗСЧЕТА", а не "ЗаполнитьОстаткиИзСчета"
речь идет об этом
demon000 пишет:
Если ВРег(Форма.Параметр)="ЗаполнитьОстаткиИзСчета" Тогда
ЗаполнитьОстатки(1);
Если ВРег(Форма.Параметр)="ЗаполнитьОстаткиИзСчета" Тогда
ЗаполнитьОстатки(1);
ведь ВРег("ЗаполнитьОстаткиИзСчета") вернет "ЗАПОЛНИТЬОСТАТКИИЗСЧЕТА", а не "ЗаполнитьОстаткиИзСчета"
Парам = Форма.Параметр;
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Если ПустоеЗначение(Парам.Получить("Команда"))=1 Тогда
Сообщить("В форму документа "+Вид()+" передан неверный параметр!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
Если Парам.Получить("Команда") = "Заполнить" Тогда
Заполнить(1);
СтатусВозврата(0);Возврат;
Иначе
Сообщить("В форму документа "+Вид()+" передана неверная команда "+Парам.Получить("Команда")+"!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
КонецЕсли;
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Если ПустоеЗначение(Парам.Получить("Команда"))=1 Тогда
Сообщить("В форму документа "+Вид()+" передан неверный параметр!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
Если Парам.Получить("Команда") = "Заполнить" Тогда
Заполнить(1);
СтатусВозврата(0);Возврат;
Иначе
Сообщить("В форму документа "+Вид()+" передана неверная команда "+Парам.Получить("Команда")+"!","I");
СтатусВозврата(0);Возврат;
КонецЕсли;
КонецЕсли;
решил так
в документ
Процедура ПриОткрытии()
Если форма.Параметр=1 тогда
Заполнить();
КонецЕсли;
в управляющий документ
Процедура НоваяГарантийнаянакладная()
Док = СоздатьОбъект("Документ.ГарантийнаяНакладная");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
глУстановитьНомерДокумента(Док);
Док.Контрагент = Контрагент;
Док.ВидТорговли = ВидТорговли;
Док.ВидНДС = глВосстановитьЗначение(,"БазНДС");
Док.Валюта = Гривня;
Док.Курс = Док.Валюта.Курс.Получить(Док.ДатаДок);
Док.Автор = Пользователь;
Док.МестоХранения= Контрагент.Склад;
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент(),1);
КонецПроцедуры
в документ
Процедура ПриОткрытии()
Если форма.Параметр=1 тогда
Заполнить();
КонецЕсли;
в управляющий документ
Процедура НоваяГарантийнаянакладная()
Док = СоздатьОбъект("Документ.ГарантийнаяНакладная");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
глУстановитьНомерДокумента(Док);
Док.Контрагент = Контрагент;
Док.ВидТорговли = ВидТорговли;
Док.ВидНДС = глВосстановитьЗначение(,"БазНДС");
Док.Валюта = Гривня;
Док.Курс = Док.Валюта.Курс.Получить(Док.ДатаДок);
Док.Автор = Пользователь;
Док.МестоХранения= Контрагент.Склад;
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент(),1);
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот