Помогая клиентам перейти на новую ставку НДС и заменить код НДС в карточках запасов, карточках покупателей или поставщиков, задавался вопросом: «А как получить список с существующими кодами?», ведь у всех разная ситуация, иногда можно попросить технического специалиста выгрузить данные, просто отправив ему текст SQL запроса, а иногда, ни технического специалиста, ни необходимых доступов, ничего нет.
Давайте я попытаюсь описать наиболее употребимые варианты для разных случаев.
Дано: нужно выгрузить в Excel список запасов с существующими кодами НДС, список поставщиков с существующими кодами НДС и список покупателей с существующими кодами НДС и существующими счетами для предоплаты.
Вариант 1: отправить текст 3-х запросов техническому специалисту. Это самый простой способ.
-- Позиции запасов select SC01001, SC01002+space(1)+SC01003, SC01144 from SC010100 (nolock) -- Покупатели select SL01001, SL01002, SL01111, isnull(GL53002,''), SL01108, SL01107, SL01112, SL01242 from SL010100 (nolock) left join GL530118 (nolock) on GL53001=SL01111 -- Поставщики select PL01001 as SupplierCode, PL01002 as SupplierName, PL01056 as VATCode from PL010100 (nolock)
А если этот вариант недоступен?
Тогда вариант 2: Построитель быстрого поиска:
В некоторых случаях у «простых смертных» есть к нему доступ. Хотя, это не самая распространённая ситуация
Вариант 3: RGW. Вставляем текст запроса в RGW и получаем нужные данные:
Иногда, однако, клиенты не используют этот инструмент. Тогда применяем очередной «чёрный ход» 🙂
Вариант 4: Запрос данных через VBA код в Excel с получением строки соединения к базе данных из сессии iScala. Об этом уже писалось раньше в заметке «Мы перешли на новую версию iScala и у нас перестали работать внешние отчёты в Excel, что делать?»
Находим какой-нибудь подходящий отчёт (чтобы не писать всё «с нуля») и заменяем в нём запрос:
Иногда, правда, и такая возможность отсутствует. Тогда нужно использовать стандартную функциональность 🙂
Вариант 5: задание параметра для вывода дополнительного поля на экран в Книге Закупок или Книге Продаж. К сожалению, такой параметр есть в 2-х вышеперечисленных модулях, но отсутствует в модуле «Управление Запасами», т.е. список покупателей и список поставщиков с существующим кодом НДС получить можно, а список запасов с таким же кодом, увы, нельзя
Результат:
А теперь позвольте задать вопрос: «Что это означает с точки зрения безопасности данных?» Очевидно, что варианты 3 и 4 позволяют выполнить запрос к базе данных. Причём это может быть не только «select», но и «update», «truncate» или «drop»!!! Не буду комментировать, что я об этом думаю…