Не записывается документ в 1С 7.7
День добрый.
Подскажите а почему данный код не записывает документ?
Я листинг 1С 7.7 совсем забыл, прошу не ругаться строго.
Спасибо.
Программа выполняется без ошибок, но реквизиты не перезаписывает у документов.
Подскажите а почему данный код не записывает документ?
Я листинг 1С 7.7 совсем забыл, прошу не ругаться строго.
Спасибо.
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(кк)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Без итогов;
|СчетФактура = Документ.СчетФактура.ТекущийДокумент;
|Аванс = Документ.СчетФактура.Аванс;
|Группировка СчетФактура без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Сформировать
Док = СоздатьОбъект("Документ.СчетФактура");
Док.НайтиДокумент(Запрос.СчетФактура);
Сообщить("Обрабатывается документ: " + Запрос.СчетФактура);
Если Док.ПометкаУдаления() = 0 Тогда
Продолжить;
КонецЕсли;
Если Док.ВидОперации <> Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс Тогда
Продолжить;
КонецЕсли;
Док.КодВидаОперации = "02";
Док.Записать();
Если Док.Проведен() = 1 Тогда
Док.Провести(0,1);
КонецЕсли;
Сообщить("Обработан документ: " + Запрос.СчетФактура);
КонецЦикла;
Сообщить("Обработка завершена !");
// Вывод заполненной формы
КонецПроцедуры
ПоказатьПрограмма выполняется без ошибок, но реквизиты не перезаписывает у документов.
По теме из базы знаний
- Отправка сообщений из 1С 7.7 в viber
- Загрузка курсов валют с НБУ (Украина) в 1С 7.7
- Решение одной из проблем типового перехода 1С:Бухгалтерский учет 4.5 (1С 7.7) –> 1С: Бухгалтерия предприятия 3.0 ПРОФ (1С 8)
- Робот-загрузчик и архив документов. Распознавание/загрузка сканов документов в 1С8(7.7), архив сканированных документов.
- COMNativeWrapper, COM-Диспетчер Native-компонент 1С (Аддонов), совместимый со всеми версиями 1С (7.7, 8.0, 8.1, 8.2, 8.3).
Найденные решения
Разобрался. Вот правильный листинг:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(кк)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Без итогов;
|СчетФактура = Документ.СчетФактура.ТекущийДокумент;
|Группировка СчетФактура без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Сформировать
Док = СоздатьОбъект("Документ.СчетФактура");
Если Док.НайтиДокумент(Запрос.СчетФактура) = 1 Тогда
Если Док.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
Если Док.ВидОперации <> Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс Тогда
Продолжить;
КонецЕсли;
Сообщить("Обрабатывается документ: " + Запрос.СчетФактура);
Если СокрЛП(Док.КодВидаОперации) = "02" Тогда
Продолжить;
КонецЕсли;
Док.КодВидаОперации = "02";
Док.Записать();
Если Док.Проведен() = 1 Тогда
Док.Провести(0,1);
КонецЕсли;
Сообщить("Обработан документ: " + Запрос.СчетФактура);
КонецЕсли;
КонецЦикла;
Сообщить("Обработка завершена !");
// Вывод заполненной формы
КонецПроцедуры
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
не проверяется - а нашелся ли документ?
Вы же в коде выводите сообщения только о результатах запроса, а чему равно Док - остается неизвестным.
Самое простое - посмотреть на выводимые сообщения после вот такой минимальной модификации:
Подскажите а почему данный код не записывает документ?
Да мало ли... Например, после вот этого:
Док.НайтиДокумент(Запрос.СчетФактура);
не проверяется - а нашелся ли документ?
Вы же в коде выводите сообщения только о результатах запроса, а чему равно Док - остается неизвестным.
Самое простое - посмотреть на выводимые сообщения после вот такой минимальной модификации:
// Док.НайтиДокумент(Запрос.СчетФактура);
Если Док.НайтиДокумент(Запрос.СчетФактура) = 0 Тогда
Продолжить;
КонецЕсли;
В коде нашел ошибку, но все равно не записывает.
Вот новая версия кода, даже документы проводятся, а реквизит не заполняется.
Даже через отладчик непонятно с чем я работаю, со ссылкой или с объектом.
Вот новая версия кода, даже документы проводятся, а реквизит не заполняется.
Даже через отладчик непонятно с чем я работаю, со ссылкой или с объектом.
Процедура Сформировать()
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(кк)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Без итогов;
|СчетФактура = Документ.СчетФактура.ТекущийДокумент;
|Группировка СчетФактура без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Сформировать
Док = СоздатьОбъект("Документ.СчетФактура");
Если Док.НайтиДокумент(Запрос.СчетФактура) = 1 Тогда
Если Док.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
Если Док.ВидОперации <> Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс Тогда
Продолжить;
КонецЕсли;
Сообщить("Обрабатывается документ: " + Запрос.СчетФактура);
Если СокрЛП(Док.КодВидаОперации) <> "02" Тогда
Продолжить;
КонецЕсли;
Док.КодВидаОперации = "02";
Док.Записать();
Если Док.Проведен() = 1 Тогда
Док.Провести(0,1);
КонецЕсли;
Сообщить("Обработан документ: " + Запрос.СчетФактура);
КонецЕсли;
КонецЦикла;
Сообщить("Обработка завершена !");
// Вывод заполненной формы
КонецПроцедуры
Показать
Разобрался. Вот правильный листинг:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(кк)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Без итогов;
|СчетФактура = Документ.СчетФактура.ТекущийДокумент;
|Группировка СчетФактура без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
// Заполнение полей "Заголовок"
Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Сформировать
Док = СоздатьОбъект("Документ.СчетФактура");
Если Док.НайтиДокумент(Запрос.СчетФактура) = 1 Тогда
Если Док.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
Если Док.ВидОперации <> Перечисление.ВидыОперацийСчетаФактурыВыданного.Аванс Тогда
Продолжить;
КонецЕсли;
Сообщить("Обрабатывается документ: " + Запрос.СчетФактура);
Если СокрЛП(Док.КодВидаОперации) = "02" Тогда
Продолжить;
КонецЕсли;
Док.КодВидаОперации = "02";
Док.Записать();
Если Док.Проведен() = 1 Тогда
Док.Провести(0,1);
КонецЕсли;
Сообщить("Обработан документ: " + Запрос.СчетФактура);
КонецЕсли;
КонецЦикла;
Сообщить("Обработка завершена !");
// Вывод заполненной формы
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)