Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).
среда, 30 апреля 2014 г.
понедельник, 28 апреля 2014 г.
Не работает поиск по дате в конвертации данных
Нашел особенность в переносе документов в конвертации данных: нужно было перенести документ "Реализация товаров и услуг" из УПП в Бухгалтерию, поля поиска у документа были установлены "Номер" и "Дата", поиск по внутреннему идентификатору не использовался. Ничего, вроде, сложного, но есть один нюанс: когда после переноса я поменял дату в базе-источнике (УПП) и попытался перенести ее в базу-источник (Бухгалтерия), то новый документ почему-то не создался (хотя должен был), в нем лишь поменялась дата на новую, которую я установил.
Пришлось анализировать код обработки "Универсальный обмен данными XML", т.к. коллега подсказал, что дело может быть в методе НайтиПоНомеру(), который используется в обработке для поиска документов по их номеру. Здесь есть нюанс в этого метода: поиск будет идти не с проверкой даты на равенство (ДатаВремя1 = ДатаВремя2), а вхождением в интервал(ДатаНач <= ДатаВремя1 <= ДатаКон). Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Пришлось анализировать код обработки "Универсальный обмен данными XML", т.к. коллега подсказал, что дело может быть в методе НайтиПоНомеру(), который используется в обработке для поиска документов по их номеру. Здесь есть нюанс в этого метода: поиск будет идти не с проверкой даты на равенство (ДатаВремя1 = ДатаВремя2), а вхождением в интервал(ДатаНач <= ДатаВремя1 <= ДатаКон). Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
В модуле обработки "Универсальный обмен данными XML" нашел такую функцию для поиска документов:
воскресенье, 27 апреля 2014 г.
среда, 23 апреля 2014 г.
Что означает ОбменДанными.Загрузка = Истина
ОбменДанными.Загрузка – атрибут любого объекта в системе 1С предприятие. Он позволяет обозначить при записи объекта что необходимо отключить любые проверки (в т.ч проверки на уровне платформы 1С). Сделано это было для того, что бы избежать конфликтов при обмене данных.
Если вы разрабатываете свою конфигурацию, в всех проверках правильности данных (например, процедура ПередЗаписью) необходимо первой строкой добавить такую строку:
Если вы разрабатываете свою конфигурацию, в всех проверках правильности данных (например, процедура ПередЗаписью) необходимо первой строкой добавить такую строку:
Если ОбменДанными.Загрузка = Истина Тогда
Возврат;
КонецЕсли;
Возврат;
КонецЕсли;
Проверка на пустой список значений в запросе
Для того, чтобы в запросе проверить параметр типа список значений на пустоту можно воспользоваться дополнительным параметром, который будет передаваться в запрос вместе со списком и показывать пустой список или нет.
Пример:
Выбрать информацию о продажах только тех контрагентов, которые содержатся в заданном списке. Проверку на заполненность списка значений проверять в запросе.
Пример:
Выбрать информацию о продажах только тех контрагентов, которые содержатся в заданном списке. Проверку на заполненность списка значений проверять в запросе.



